Список языков программирования по категориям
Это список известных языков программирования, сгруппированных по типам.
Для языков программирования не существует общей схемы классификации. Таким образом, во многих случаях язык перечислен под несколькими заголовками (в связи с этим см. "Мультипарадигмальные языки" ниже).
Массив-ориентированные языки программирования
Языки программирования массивов (также называемые "векторными" или "многомерными") обобщают операции над скалярами, чтобы прозрачно применять их к векторам, матрицам и более высокоразмерным массивам.
Языки ассемблера
Язык ассемблера непосредственно соответствует машинному языку (см. ниже), поэтому инструкции машинного кода отображаются в форме, понятной человеку, хотя между отдельным оператором и отдельной инструкцией может не быть однозначного соответствия. Языки ассемблера позволяют программистам использовать символьные адреса, которые ассемблер преобразует в абсолютные или relocatable адреса. Большинство ассемблеров также поддерживают макросы и символические константы.
Языки создания текстов
Язык создания текстов - это язык программирования, предназначенный для использования неспециалистом в области компьютерных технологий для простого создания учебных пособий, веб-сайтов и других интерактивных компьютерных программ.
Конкатенативный язык программирования
Конкатенативный язык программирования - это бесточечный компьютерный язык программирования, в котором все выражения обозначают функции, а сопоставление выражений обозначает композиция функций.[1] Конкатенативное программирование заменяет применение функций, распространенное в других стилях программирования, на композицию функций как способ построения подпрограмм по умолчанию.
- Factor
- Forth
- jq (function application is also supported)
- Joy
- Kitten[2]
- Lviv[3]
- PostScript
- r3[4]
- Staapl[5]
- Trith[6]
- xs[7]
- 8th[8]
Языки программирования в ограничениях
Язык программирования в ограничениях - это декларативный язык программирования, в котором отношения между переменными выражаются в виде constraints. Выполнение происходит путем попытки найти значения переменных, которые удовлетворяют всем объявленным ограничениям.
Языки интерфейса командной строки
Языки Интерфейс командной строки (CLI) также называются пакетными языками или языками управления заданиями. Примеры:
- 4DOS (расширенная оболочка командной строки для IBM PCов)
- 4OS2 (расширенная оболочка командной строки для IBM PCов)
- bash (оболочка Bourne-Again от GNU, Free Software Foundation (FSF))
- CLIST (MVS Command List)
- CMS EXEC
- csh и tcsh (C-подобная оболочка от Билл Джой в UC Berkeley)
- DIGITAL Command Language (DCL) - стандартный язык CLI для VMS (DEC, Compaq, HP)
- DOS batch language (стандартный язык CLI/batch language для IBM PC под управлением операционных систем DOS, популярный до Windows)
- EXEC 2
- Expect (инструмент автоматизации и тестирования Unix)
- fish (оболочка Unix)
- Hamilton C shell (оболочка C для Windows)
- ksh (стандартная оболочка Unix, написанная David Korn)
- PowerShell (.NET-основанный CLI)
- Rc (оболочка командной строки для Plan 9)
- Rexx
- sh (стандартная оболочка Unix, написанная Stephen R. Bourne)
- TACL (Tandem Advanced Command Language)
- Windows batch language (язык пакетных файлов Windows в понимании COMMAND.COM и CMD.EXE)
- zsh (оболочка Unix)
Компилируемые языки
Это языки, которые обычно обрабатываются компиляторами, хотя теоретически любой язык может быть скомпилирован или интерпретирован.
- ActionScript
- Ada (многоцелевой язык)
- АЛГОЛ 58
- ALGOL 60 (очень влиятельный дизайн языка)
- SMALL Машинный АЛГОЛ-подобный язык
- Ballerina (в байткод для времени выполнения (BVM))
- BASIC (включая первую версию Dartmouth BASIC)
- BCPL
- C (один из наиболее широко используемых процедурных языков)
- C++ (мультипарадигмальный язык, производный от C)
- C# (в CIL, генерирует среду выполнения)
- Ceylon (в JVM байткод)
- CHILL
- CLIPPER 5.3 (для программ на базе DOS)
- CLEO для компьютеров Leo
- Clojure (в JVM байткод)
- COBOL
- Cobra
- Common Lisp
- Crystal
- Curl
- D (из реинжиниринга C++)
- DASL на Java, JavaScript, JSP, Flex в виде .war файла
- Delphi (Borland - система разработки Object Pascal)
- DIBOL (цифровой интерактивный бизнес-ориентированный язык)
- Dylan
- eC
- Eiffel (разработан Бертраном Мейером)
- Elm
- Emacs Lisp
- Emerald
- Erlang
- F# (в CIL, генерирует время выполнения)
- Factor
- Fortran (впервые скомпилирован IBM в John Backus)
- GAUSS
- Genie
- Go (Golang)
- Gosu (в JVM байткод)
- Groovy (в JVM байткод)
- Haskell
- Harbour
- HolyC
- Inform (обычно сюжетные файлы для Glulx или Z-code)
- Java (обычно JVM байткод; в машинный код)
- JOVIAL
- Julia (на лету в машинный код)
- Kotlin (Kotlin/Native использует LLVM для создания двоичных файлов)
- LabVIEW
- Mercury
- Mesa
- Nemerle (в байткод промежуточного языка)
- Nim
- Objective-C
- P
- Pascal (большинство реализаций)
- PL/I (первоначально для мэйнфреймов IBM)
- Plus
- Python (для промежуточного VM байткод)
- RPG (генератор отчетных программ)
- Rust
- Scala (в JVM байткод)
- Scheme (например, Gambit)
- SequenceL - чисто функциональный, распараллеливающий и свободный от гонок.
- Simula (первый объектно-ориентированный язык, супермножество ALGOL 60)
- Smalltalk - платформонезависимый байткод для виртуальной машины
- Swift
- ML
- Стандартный ML (SML)
- OCaml
- Turing
- Vala (система типов GObject)
- Visual Basic (использование Common Intermediate Language (CIL) JIT для нативного времени выполнения)
- Visual FoxPro
- Visual Prolog
- Xojo
Языки параллельного программирования
Языки, основанные на передаче сообщений, предоставляют языковые конструкции для параллелизма. Преобладающей парадигмой параллелизма в основных языках, таких как Java, является параллелизм разделяемой памяти. Языки параллельных вычислений, использующие передачу сообщений, обычно создаются под влиянием таких типов вычислений, как взаимодействующие последовательные процессы (CSP) или π-исчисление.
- Ada - многоцелевой язык.
- Alef - параллельный язык с потоками и передачей сообщений, использовался для системного программирования в ранних версиях Plan 9 от Bell Labs.
- Ateji PX - расширение языка Java для параллелизма.
- Ballerina - язык, разработанный для реализации и оркестровки микросервисов. Обеспечивает параллельно-первую модель параллельного параллелизма на основе сообщений.
- ChucK - язык программирования, специфичный для конкретного домена, для аудио, точного контроля над параллелизмом и синхронизацией.
- Cilk - параллельный C.
- 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
- Julia
- Joule - язык потока данных, взаимодействие осуществляется путем передачи сообщений
- LabVIEW
- Limbo - родственник Alef, используется для системного программирования в Inferno (операционная система).
- MultiLisp - вариант Scheme, расширенный для поддержки параллелизма.
- OCaml
- occam - испытал сильное влияние взаимодействующих последовательных процессов (CSP)
- occam-π - современный вариант occam, включающий идеи из π-исчисления Милнера.
- Orc
- Oz - мультипарадигмальный язык, поддерживает параллелизм с общим состоянием и передачей сообщений, фьючерсы, а также систему программирования Mozart кроссплатформенность. Oz
- P
- Pict - по сути, исполняемая реализация π-исчисления Милнера.
- Python - использует параллелизм на основе потоков и параллелизм на основе процессов[9].
- Rust
- Scala - реализует actors в стиле Эрланга на JVM
- SequenceL - чисто функциональный, автоматически распараллеливающийся и свободный от гонок.
- SR - исследовательский язык
- Unified Parallel C
- XProc - язык обработки XML, обеспечивающий параллелизм.
См. также
- Хронология языков программирования
- Генеалогический список языков программирования
- Программа Hello, world!
Примечания
- ↑ Christopher Diggins: What is a concatenative language . Drdobbs.com (31 декабря 2008). Дата обращения: 1 июля 2013.
- ↑ Kitten programming language .
- ↑ Lviv programming language . GitHub (December 2022).
- ↑ r3 programming language . GitHub (9 December 2022).
- ↑ Staapl programming language .
- ↑ Trith programming language . GitHub (7 December 2022).
- ↑ xs programming language . GitHub (5 December 2022).
- ↑ 8th programming language .
- ↑ Documentation " The Python Standard Library " Concurrent Execution