Список языков программирования по категориям

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Язык программирования
списки
Тема:Информационные технологии/Списки/Список языков программирования
По категориям
Хронологический
Генеалогический

Это список известных языков программирования, сгруппированных по типам.

Для языков программирования не существует общей схемы классификации. Таким образом, во многих случаях язык перечислен под несколькими заголовками (в связи с этим см. "Мультипарадигмальные языки" ниже).

Массив-ориентированные языки программирования

Языки программирования массивов (также называемые "векторными" или "многомерными") обобщают операции над скалярами, чтобы прозрачно применять их к векторам, матрицам и более высокоразмерным массивам.

Языки ассемблера

Язык ассемблера непосредственно соответствует машинному языку (см. ниже), поэтому инструкции машинного кода отображаются в форме, понятной человеку, хотя между отдельным оператором и отдельной инструкцией может не быть однозначного соответствия. Языки ассемблера позволяют программистам использовать символьные адреса, которые ассемблер преобразует в абсолютные или relocatable адреса. Большинство ассемблеров также поддерживают макросы и символические константы.

Языки создания текстов

Язык создания текстов - это язык программирования, предназначенный для использования неспециалистом в области компьютерных технологий для простого создания учебных пособий, веб-сайтов и других интерактивных компьютерных программ.

Конкатенативный язык программирования

Конкатенативный язык программирования - это бесточечный компьютерный язык программирования, в котором все выражения обозначают функции, а сопоставление выражений обозначает композиция функций.[1] Конкатенативное программирование заменяет применение функций, распространенное в других стилях программирования, на композицию функций как способ построения подпрограмм по умолчанию.

Языки программирования в ограничениях

Язык программирования в ограничениях - это декларативный язык программирования, в котором отношения между переменными выражаются в виде constraints. Выполнение происходит путем попытки найти значения переменных, которые удовлетворяют всем объявленным ограничениям.

Языки интерфейса командной строки

Языки Интерфейс командной строки (CLI) также называются пакетными языками или языками управления заданиями. Примеры:

Компилируемые языки

Это языки, которые обычно обрабатываются компиляторами, хотя теоретически любой язык может быть скомпилирован или интерпретирован.

Языки параллельного программирования

Языки, основанные на передаче сообщений, предоставляют языковые конструкции для параллелизма. Преобладающей парадигмой параллелизма в основных языках, таких как Java, является параллелизм разделяемой памяти. Языки параллельных вычислений, использующие передачу сообщений, обычно создаются под влиянием таких типов вычислений, как взаимодействующие последовательные процессы (CSP) или π-исчисление.

  • Ada - многоцелевой язык.
  • Alef - параллельный язык с потоками и передачей сообщений, использовался для системного программирования в ранних версиях Plan 9 от Bell Labs.
  • Ateji PX - расширение языка Java для параллелизма.
  • Ballerina - язык, разработанный для реализации и оркестровки микросервисов. Обеспечивает параллельно-первую модель параллельного параллелизма на основе сообщений.
  • ChucK - язык программирования, специфичный для конкретного домена, для аудио, точного контроля над параллелизмом и синхронизацией.
  • Cilk - параллельный C.
  • - C Omega, исследовательский язык, расширяющий C#, использует асинхронное взаимодействие.
  • Clojure - диалект Lisp для виртуальной машины Java.
  • Chapel
  • Co-array Fortran
  • Concurrent Pascal (автор Бринч-Хансен)
  • Curry
  • E - использует обещания, обеспечивает невозможность возникновения тупиковых ситуаций
  • Eiffel (через механизм SCOOP, Simple Concurrent Object-Oriented Computation)
  • Elixir (работает на виртуальной машине Erlang VM)
  • Emerald - использует потоки и мониторы
  • Erlang - использует асинхронную передачу сообщений без общего доступа
  • Gambit Scheme - использует библиотеку Termite
  • Go (Golang)
  • Haskell - поддерживает параллельное, распределенное и параллельное программирование на нескольких машинах
  • Java
    • Join Java - параллельный язык, основанный на Java
    • X10
  • Julia
  • Joule - язык потока данных, взаимодействие осуществляется путем передачи сообщений
  • LabVIEW
  • Limbo - родственник Alef, используется для системного программирования в Inferno (операционная система).
  • MultiLisp - вариант Scheme, расширенный для поддержки параллелизма.
  • OCaml
  • occam - испытал сильное влияние взаимодействующих последовательных процессов (CSP)
  • Orc
  • Oz - мультипарадигмальный язык, поддерживает параллелизм с общим состоянием и передачей сообщений, фьючерсы, а также систему программирования Mozart кроссплатформенность. Oz
  • P
  • Pict - по сути, исполняемая реализация π-исчисления Милнера.
  • Python - использует параллелизм на основе потоков и параллелизм на основе процессов[9].
  • Rust
  • Scala - реализует actors в стиле Эрланга на JVM
  • SequenceL - чисто функциональный, автоматически распараллеливающийся и свободный от гонок.
  • SR - исследовательский язык
  • Unified Parallel C
  • XProc - язык обработки XML, обеспечивающий параллелизм.

См. также

Примечания

  1. Christopher Diggins: What is a concatenative language. Drdobbs.com (31 декабря 2008). Дата обращения: 1 июля 2013.
  2. Kitten programming language.
  3. Lviv programming language. GitHub (December 2022).
  4. r3 programming language. GitHub (9 December 2022).
  5. Staapl programming language.
  6. Trith programming language. GitHub (7 December 2022).
  7. xs programming language. GitHub (5 December 2022).
  8. 8th programming language.
  9. Documentation " The Python Standard Library " Concurrent Execution