Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Для языков программирования нет всеобъемлющей схемы классификации. Таким образом, во многих случаях язык указывается под несколькими заголовками.

Языки массивов [ править ]

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

  • А +
  • Аналитика
  • APL
  • БАЗОВЫЙ
  • Часовня
  • Фортран 90
  • FreeMat
  • ГАУСС
  • Интерактивный язык данных (IDL)
  • J
  • Юлия
  • K
  • MATLAB
  • Октава
  • Q
  • р
  • S
  • Scilab
  • Сленг
  • ПоследовательностьL
  • Speakeasy
  • Язык Wolfram Language
  • X10
  • ZPL

Языки ассемблера [ править ]

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

Языки разработки [ править ]

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

  • Архитектура типизации информации Дарвина (DITA)
  • Лассо
  • ПИЛОТ
  • УЧИТЕЛЬ
  • Авторское ПО

Языки программирования ограничений [ править ]

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

  • Затмение

Языки интерфейса командной строки [ править ]

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

  • 4DOS (расширенная оболочка командной строки для ПК IBM )
  • 4OS2 (расширенная оболочка командной строки для ПК IBM )
  • bash (оболочка Bourne-Again от GNU , Free Software Foundation (FSF))
  • CLIST ( список команд MVS )
  • CMS EXEC
  • csh и tcsh (C-подобная оболочка от Билла Джоя из Калифорнийского университета в Беркли )
  • DIGITAL Command Language (DCL) - стандартный язык интерфейса командной строки для VMS ( DEC , Compaq , HP )
  • Пакетный язык DOS (стандартный интерфейс командной строки / пакетный язык для IBM PC с операционными системами DOS , популярный до Windows )
  • EXEC 2
  • Expect (инструмент автоматизации и тестирования Unix )
  • рыба ( оболочка Unix )
  • Оболочка Hamilton C (оболочка C для Windows)
  • ksh (стандартная оболочка Unix , написанная Дэвидом Корном )
  • Rc (оболочка командной строки для Plan 9 )
  • Rexx
  • sh (стандартная оболочка Unix , написанная Стивеном Р. Борном )
  • TACL (тандемный расширенный командный язык)
  • Пакетный язык Windows ( язык пакетных файлов Windows, понимаемый COMMAND.COM и CMD.EXE )
  • Windows PowerShell ( интерфейс командной строки на основе .NET )
  • zsh ( оболочка Unix )

Скомпилированные языки [ править ]

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

  • ActionScript
  • Ада (многоцелевой язык)
  • АЛГОЛ (очень влиятельный дизайн языка; второй компилятор языка высокого уровня)
    • МАЛЕНЬКИЙ Машинный АЛГОЛ как язык
  • Ballerina (скомпилирован в байт-код, специфичный для Ballerina Runtime (BVM))
  • BASIC (некоторые диалекты, включая первую версию Dartmouth BASIC)
  • BCPL
  • C (один из наиболее широко используемых процедурных языков)
  • C ++ (широко используемый многопарадигмальный язык, производный от C)
  • C # (скомпилирован в CIL , генерирует собственный образ во время выполнения)
  • Цейлон (скомпилирован в байт-код JVM )
  • ХОЛОД
  • CLIPPER 5.3 (язык программирования для программного обеспечения на базе DOS)
  • CLEO (Clear Language for Expressing Order) на компьютерах British Leo
  • Clojure (скомпилирован в байт-код JVM )
  • КОБОЛ
  • Кобра
  • Common Lisp
  • Кристалл
  • Завиток
  • D (от реинжиниринга C ++)
  • DASL компилируется в Java, JavaScript, JSP, Flex и т. Д. Как файл .war
  • Delphi ( Borland «S Object Pascal система разработки)
  • DIBOL (Цифровой интерактивный бизнес-ориентированный язык)
  • Дилан
  • eC
  • Eiffel (объектно-ориентированный язык, разработанный Бертраном Мейером )
    • Sather
    • Ubercode
  • Вяз
  • Emacs Lisp
  • Изумруд
  • Erlang
  • F # (скомпилирован в CIL для создания образа во время выполнения)
  • Фактор
  • Fortran (первый высокого уровня, компилируемый язык, от IBM «s Джон Backus )
  • ГАУСС
  • Идти
  • Gosu (скомпилирован в байт-код JVM )
  • Groovy (скомпилирован в байт-код JVM )
  • Haskell
  • Гавань
  • Java (обычно компилируется в байт-код JVM, хотя существуют опережающие компиляторы (AOT), которые компилируются в машинный код )
  • Веселый
  • Юлия (Скомпилировано "на лету" в машинный код)
  • Kotlin (Kotlin / Native использует LLVM для создания собственных двоичных файлов)
  • LabVIEW
  • Меркурий
  • Меса
  • Nemerle (скомпилирован в байт-код промежуточного языка)
  • Ним
  • Цель-C
  • п
  • Паскаль (большинство реализаций)
  • PL / I (язык общего назначения, первоначально для мэйнфреймов IBM)
  • Плюс
  • Python (компилируется в промежуточный байт-код виртуальной машины )
  • RPG (генератор программ отчетов)
  • Ржавчина
  • Scala (скомпилирован в байт-код JVM )
  • Схема (некоторые реализации, например Гамбит)
  • SequenceL - чисто функциональный, автоматически распараллеливающийся и свободный от гонок
  • Simula (первый объектно-ориентированный язык, надмножество АЛГОЛА 60 )
  • Smalltalk компилируется в независимый от платформы байт-код для виртуальной машины
  • Быстрый
  • ML
    • Стандартный ML (SML)
      • Алиса
    • OCaml
  • Тьюринг
  • Vala (компилятор для системы типов GObject)
  • Visual Basic (используйте Common Intermediate Language (CIL), который JIT скомпилирован во встроенную среду выполнения)
  • Visual FoxPro
  • Визуальный пролог
  • Xojo

Параллельные языки [ править ]

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

  • Ада - многоцелевой язык
  • Alef - параллельный язык с потоками и передачей сообщений, используемый для системного программирования в ранних версиях Plan 9 от Bell Labs
  • Ateji PX - расширение языка Java для параллелизма
  • Ballerina - язык, предназначенный для реализации и оркестровки микросервисов. Предоставляет модель параллелизма, основанную на сообщениях.
  • ChucK - предметно-ориентированный язык программирования для аудио, точный контроль над параллелизмом и синхронизацией
  • Cilk - параллельный C
  • Cω - C Omega, исследовательский язык, расширяющий C #, использует асинхронную связь.
  • Clojure - диалект Lisp для виртуальной машины Java
  • Часовня
  • Ко-массив Fortran
  • Параллельный Паскаль (Бринч-Хансен)
  • Карри
  • E - использует обещания, гарантирует невозможность возникновения тупиковых ситуаций.
  • Eiffel (через механизм SCOOP , простые параллельные объектно-ориентированные вычисления)
  • Эликсир (работает на виртуальной машине Erlang)
  • Изумруд - использует потоки и мониторы
  • Erlang - использует асинхронную передачу сообщений без общего доступа
  • Схема гамбита - использование библиотеки Termite
  • Идти
  • Haskell - поддерживает параллельное, распределенное и параллельное программирование на нескольких машинах.
  • Ява
    • Присоединяйтесь к Java - параллельному языку на основе Java
    • X10
  • Юлия
  • Джоуль - язык потока данных, общается посредством передачи сообщений
  • Лимбо - родственник Алефа , используется для системного программирования в Inferno (операционная система)
  • MultiLisp - вариант схемы расширен для поддержки параллелизма
  • occam - находящийся под сильным влиянием Коммуникационных Последовательных Процессов (CSP)
    • occam-π - современный вариант occam , который включает идеи из π-исчисления Милнера
  • Орк
  • Oz - многопарадигмальный язык, поддерживает параллелизм с общим состоянием и передачей сообщений, а также фьючерсы, а также кроссплатформенную систему программирования Моцарта Oz
  • п
  • Pict - по сути, исполняемая реализация π-исчисления Милнера
  • Ржавчина
  • Scala - реализует акторы в стиле Erlang на JVM.
  • SequenceL - чисто функциональный, автоматически распараллеливающийся и свободный от гонок
  • SR - исследовательский язык
  • Унифицированный параллельный C
  • XProc - язык обработки XML, обеспечивающий параллелизм

Языки с фигурными скобками [ править ]

Кудрявые-кронштейн или фигурные скобки языков программирования имеют синтаксис , который определяет операторные блоки , используя фигурные скобки или фигурных скобок символы {и} . Этот синтаксис возник с BCPL (1966), и был популяризированный C . Многие языки с фигурными скобками происходят от C. Примеры языков с фигурными скобками включают:

  • ABCL / c +
  • Алеф
    • Лимбо
      • Идти
  • AWK
  • B
  • до н.э
  • BCPL
  • Балерина
  • C - разработан примерно в 1970 году в Bell Labs.
  • C ++
  • C #
  • Цейлон
  • ChucK - язык программирования аудио
  • Cilk - параллельный C для многопоточного параллельного программирования
  • Циклон - более безопасный вариант C
  • D
  • Дротик
  • DASL - на основе Java
  • E
  • eC
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript
    • JScript
    • Машинопись
  • GLSL
  • HLSL
  • ICI
  • Ява
    • Обработка
    • Groovy
    • Присоединяйтесь к Java
    • Котлин
    • Чай
    • X10
  • LPC
  • MEL
  • Nemerle - сочетает в себе функции C # и ML, предоставляет возможности расширения синтаксиса.
  • PCASTL
  • Perl
  • PHP
  • Пико
  • Щука
  • PowerShell
  • р
  • Ржавчина
  • Сленг
  • Scala
  • sed
  • Суперколлайдер
  • Быстрый
  • UnrealScript
  • Йорик
  • ЯСС

Языки потока данных [ править ]

Языки программирования потока данных полагаются на (обычно визуальное) представление потока данных для определения программы. Часто используется для реагирования на дискретные события или для обработки потоков данных. Примеры языков потока данных включают:

  • Аналитика
  • BMDFM
  • Трубопроводы Hartmann
  • G (используется в LabVIEW )
  • Lucid
  • Максимум
  • Унция
  • Prograph
  • Чистые данные
  • Реактор
  • StreamBase StreamSQL EventFlow
  • VEE
  • VHDL
  • VisSim
  • Vvvv
  • WebMethods Flow
  • Балерина
  • Swift (язык параллельных сценариев)

Языки, ориентированные на данные [ править ]

Языки, ориентированные на данные, предоставляют мощные способы поиска и управления отношениями, которые были описаны как таблицы отношений сущностей, которые отображают один набор вещей в другие наборы. [ необходима цитата ] Примеры языков, ориентированных на данные, включают:

  • Clarion
  • Машинка для стрижки
  • dBase - язык доступа к реляционной базе данных
  • Гремлин
  • MUMPS (стандартный язык общего назначения ANSI со специализацией для работы с базами данных)
  • Caché (аналог MUMPS)
  • RDQL
  • SPARQL
  • SQL
  • Учебник D - см. Также Третий манифест
  • Visual FoxPro - собственный движок СУБД, объектно-ориентированный, RAD
  • WebDNA
  • Язык Wolfram Language

Языки таблицы решений [ править ]

Таблицы решений можно использовать в качестве вспомогательных средств для разъяснения логики перед написанием программы на любом языке, но в 1960-х годах был разработан ряд языков, в которых основная логика выражается непосредственно в форме таблицы решений, в том числе:

  • Filetab

Декларативные языки [ править ]

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

  • Аналитика
  • Ant (совмещает декларативное программирование и императивное программирование )
  • Карри
  • Сайфер
  • Распределенный язык спецификации приложений (DASL) (объединяет декларативное программирование и императивное программирование )
  • ECL
  • Гремлин
  • Блеск
  • Меркурий
  • MetaPost
  • Modelica
  • Пролог
  • QML
  • Унция
  • RDQL
  • SequenceL - чисто функциональный, автоматически распараллеливающийся и свободный от гонок
  • SPARQL
  • SQL (только DQL, а не DDL, DCL и DML)
  • Язык Wolfram Language
  • xBase
  • Преобразования XSL

Встраиваемые языки [ править ]

В исходном коде [ править ]

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

Клиентские встроенные языки ограничены возможностями браузера или предполагаемого клиента. Они стремятся обеспечить динамизм веб-страниц без необходимости повторного подключения к серверу.

Серверные встроенные языки намного более гибкие, поскольку почти любой язык может быть встроен в сервер. Целью внедрения фрагментов серверного кода в веб-страницу является динамическое создание дополнительной разметки; сам код исчезает при обслуживании страницы и заменяется ее выводом.

Сторона сервера [ править ]

  • PHP
  • VBScript
  • SMX - предназначен для веб-страниц
  • Tcl - серверная часть в NaviServer и важный компонент в системах электронной промышленности
  • WebDNA - посвящен веб-сайтам, управляемым базами данных

Приведенные выше примеры специально предназначены для этой цели. Большое количество других языков, таких как Erlang , Scala , Perl и Ruby, можно адаптировать (например, путем преобразования в модули Apache ).

Клиентская сторона [ править ]

  • ActionScript
  • JavaScript (также известный как ECMAScript или JScript)
  • VBScript (только для Windows)

В объектном коде [ править ]

В скомпилированный исполняемый код можно встроить широкий спектр динамических языков или языков сценариев. По сути, объектный код интерпретатора языка должен быть связан с исполняемым файлом. Затем фрагменты исходного кода для встроенного языка могут быть переданы функции оценки в виде строк. Таким образом могут быть реализованы языки управления приложениями, если исходный код вводится пользователем. Предпочтительны языки с небольшими переводчиками.

  • AngelScript
  • Ch
  • УГОРЬ
  • Ио
  • Юлия
  • Lua
  • Python
  • Рубин (через mruby )
  • Белка
  • Tcl

Образовательные языки [ править ]

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

  • Алиса
  • Блочно
  • COMAL
  • Элан
  • Изумруд
  • Ежиль
  • Логотип
  • KЧерепаха
  • Модула-2
  • Паскаль
  • Ракетка
  • Схема
  • Царапать
  • Щелчок!
  • Тьюринг
  • Язык Wolfram Language

Эзотерические языки [ править ]

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

  • Битник
  • Befunge
  • Brainfuck
  • Повар
  • ИНТЕРКАЛ
  • ЛОЛКОД
  • Мальболге
  • Пит
  • Шекспир
  • Чт
  • Пробел

Языки расширения [ править ]

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

  • AutoLISP (только для AutoCAD )
  • BeanShell
  • CAL
  • C / AL (C / СТОРОНА)
  • Хитрость
  • Emacs Lisp
  • JavaScript и некоторые диалекты, например JScript
  • Lua (встроен во многие игры)
  • OpenCL (расширение C и C ++ для использования GPU и параллельных расширений CPU)
  • OptimJ (расширение Java с поддержкой языка для написания моделей оптимизации и мощных абстракций для массовой обработки данных)
  • Perl
  • Щука
  • Python (встроенный в Maya, Blender и другие пакеты трехмерной анимации)
  • Rexx
  • Рубин (Google SketchUp)
  • Сленг
  • SQL
  • Белка
  • Tcl
  • Скрипт vim
  • Visual Basic для приложений (VBA)
  • Windows PowerShell

Языки четвертого поколения [ править ]

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

  • 1С: Предприятие язык программирования
  • ABAP
  • CorVision
  • CSC GraphTalk
  • CA-IDEAL (интерактивная среда разработки для жизни приложения) для использования с CA-DATACOM / DB
  • Генератор отчетов Easytrieve (теперь CA-Easytrieve Plus)
  • ФОКУС
  • IBM Informix-4GL
  • LINC 4GL
  • MAPPER ( Unisys / Sperry ) - теперь часть BIS
  • MARK-IV ( Sterling / Informatics ) теперь ВИДЕНИЕ: СТРОИТЕЛЬ CA
  • ЕСТЕСТВЕННЫЙ
  • Прогресс 4GL
  • PV-волна
  • LiveCode (не основан на базе данных; все же цель состоит в том, чтобы работать на более высоком уровне абстракции, чем 3GL)
  • SAS
  • SQL
  • Ubercode (VHLL, или язык очень высокого уровня)
  • Uniface
  • Визуальный DataFlex
  • Visual FoxPro
  • xBase

Функциональные языки [ править ]

Языки функционального программирования определяют программы и подпрограммы как математические функции и рассматривают их как первоклассные. Многие так называемые функциональные языки являются «нечистыми» и содержат императивные особенности. Многие функциональные языки привязаны к инструментам математических вычислений. Функциональные языки включают:

Чистый [ править ]

  • Агда
  • Чистый
  • Coq (Галлина)
  • Клинопись
  • Карри
  • Вяз
  • Футарк
  • Haskell
  • Надеяться
  • Идрис
  • Радость
  • Тощий
  • Меркурий
  • Миранда
  • PureScript
  • Ура
  • KRC
  • SAC
  • SASL
  • ПоследовательностьL

Нечистый [ править ]

  • APL
  • АТС
  • CAL
  • C ++ (начиная с C ++ 11 )
  • C #
  • VB.NET
  • Цейлон
  • D
  • Дротик
  • Завиток
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript
    • JScript
    • Источник
  • Erlang
    • Эликсир
    • LFE
    • Проблеск
  • F #
  • Flix
  • Groovy
  • Прыгать
  • J
  • Java (с версии 8)
  • Юлия
  • Котлин
  • Лисп
    • Clojure
    • Common Lisp
    • Дилан
    • Emacs Lisp
    • LFE
    • Маленькая б
    • Логотип
    • Схема
      • Ракетка (ранее схема PLT)
    • Чай
  • Mathematica
  • ML
    • Стандартный ML (SML)
      • Алиса
    • OCaml
  • Nemerle
  • Ним
  • Опал
  • OPS5
  • Perl
  • PHP
  • Python
  • Q (язык эквационального программирования)
  • Q (язык программирования от Kx Systems)
  • р
  • Раку
  • REBOL
  • красный
  • Рубин
  • РЕФАЛ
  • Ржавчина
  • Scala
  • Быстрый
  • Таблицы
  • Tcl
  • Язык Wolfram Language

Языки описания оборудования [ править ]

В электронике язык описания оборудования (HDL) - это специализированный компьютерный язык, используемый для описания структуры, конструкции и работы электронных схем и, как правило, цифровых логических схем. Двумя наиболее широко используемыми и хорошо поддерживаемыми разновидностями HDL, используемыми в промышленности, являются Verilog и VHDL . Языки описания оборудования включают:

HDL для проектирования аналоговых схем [ править ]

  • Verilog-AMS (Verilog для аналоговых и смешанных сигналов)
  • VHDL-AMS (VHDL с расширением аналоговых / смешанных сигналов)

HDL для проектирования цифровых схем [ править ]

  • Расширенный язык логических выражений
  • Язык описания оборудования Altera
  • Bluespec
  • Слияние
  • ЭЛЛА
  • Гендель-С
  • Импульс C
  • JHDL
  • Лава
  • Лола
  • MyHDL
  • ПАЛАЗМ
  • Ruby (язык описания оборудования)
  • SystemC
  • SystemVerilog
  • Verilog
  • VHDL (VHSIC HDL)

Императивные языки [ править ]

Императивные языки программирования могут быть мультипарадигмальными и появляться в других классификациях. Вот список языков программирования, которые следуют императивной парадигме :

  • Ада
  • АЛГОЛ
  • БАЗОВЫЙ
  • C
  • C ++
  • C #
  • Цейлон
  • ХОЛОД
  • КОБОЛ
  • D
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript
    • JScript
    • Источник
  • FORTRAN
  • ГАУСС
  • Идти
  • Groovy
  • Ява
  • Юлия
  • Lua
  • MATLAB
  • Машинные языки
  • Модула-2 , Модула-3
  • Швабры
  • Ним
  • OCaml
  • Оберон
  • Object Pascal
  • Паскаль
  • Perl
  • PHP
  • PL / I
  • PowerShell
  • ПРОЗА
  • Python
  • Рубин
  • Ржавчина
  • Speakeasy
  • Быстрый
  • Tcl
  • Язык Wolfram Language

Языки интерактивного режима [ править ]

Языки интерактивного режима действуют как своего рода оболочка: выражения или утверждения можно вводить по одному, и результат их вычисления виден сразу. Интерактивный режим также называется циклом чтения – оценки – печати (REPL).

  • APL
  • BASIC (некоторые диалекты)
  • Clojure
  • Common Lisp
  • Dart (с инструментами разработчика Observatory или Dartium)
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript
    • JScript
    • Источник
  • Erlang
  • Эликсир (с iex)
  • F #
  • Фрил
  • ГАУСС
  • Groovy
  • Haskell (с интерпретатором GHCi или Hugs)
  • IDL
  • J
  • Java (с версии 9)
  • Юлия
  • Lua
  • MUMPS (стандартный язык общего назначения ANSI)
  • Клен
  • Mathematica ( язык Wolfram )
  • MATLAB
  • ML
  • OCaml
  • Perl
  • PHP
  • Щука
  • PostScript
  • Пролог
  • Python
  • ПРОЗА
  • р
  • REBOL
  • Rexx
  • Рубин (с IRB )
  • Scala
  • Схема
  • Smalltalk (где угодно в среде Smalltalk)
  • S-Lang (с оболочкой S-Lang, slsh)
  • Speakeasy
  • Быстрый
  • Tcl (с оболочкой Tcl, tclsh)
  • Оболочка Unix
  • Windows PowerShell ( интерфейс командной строки на основе .NET )
  • Visual FoxPro

Переводимые языки [ править ]

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

  • Муравей
  • APL
  • Язык сценариев AutoHotkey
  • Язык сценариев AutoIt
  • BASIC (некоторые диалекты)
  • Язык программирования для бизнеса (PL / B, ранее DATABUS, в более поздних версиях добавлена ​​необязательная компиляция)
  • Эйфель (через технологию плавления льда в EiffelStudio )
  • Emacs Lisp
  • Язык GameMaker
  • Groovy
  • J
  • Юлия (скомпилирован на лету в машинный код , но транспилятор Julia2C существует)
  • JavaScript
  • Lisp (ранние версии, до 1962 года и некоторые экспериментальные; производственные системы Lisp являются компиляторами, но многие из них по-прежнему предоставляют интерпретатор, если это необходимо)
  • LPC
  • Lua
  • MUMPS (стандартный язык общего назначения ANSI)
  • Клен
  • Mathematica
  • MATLAB
  • OCaml
  • Паскаль (ранние реализации)
  • PCASTL
  • Perl
  • PHP
  • PostScript
  • PowerShell
  • ПРОЗА
  • Python
  • Rexx
  • р
  • REBOL
  • Рубин
  • Сленг
  • Speakeasy
  • Стандартный ML (SML)
  • Вращение
  • Tcl
  • Чай
  • TorqueScript
  • thinBasic язык сценариев
  • VBScript
  • Windows PowerShell - интерфейс командной строки на основе .NET
  • Язык Wolfram Language
  • Некоторые скриптовые языки - ниже

Итеративные языки [ править ]

Итеративные языки построены вокруг или предлагают генераторы .

  • Алдор
  • Alphard
  • C #
  • CLU
  • Кобра
  • Эйфель через «агентов»
  • Икона
  • IPL-v
  • Юлия
  • Lua
  • Ним
  • PHP
  • Python
  • Sather

Языки по типу управления памятью [ править ]

Языки со сборкой мусора [ править ]

  • C #
  • Кристалл
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript
    • JScript
    • Источник
  • Изумруд
  • Erlang
  • Идти
  • Groovy
  • Ява
  • Юлия
  • Котлин
  • Лисп (создатель)
    • Дуга
    • Clojure
    • Common Lisp
    • Дилан
    • Emacs Lisp
    • Ракетка
    • Схема
    • Логотип
  • Haskell
  • Lua
  • ML
    • Стандартный ML (SML)
      • Алиса
    • OCaml
  • Perl
  • PHP
  • PowerShell
  • Python
  • Рубин
  • Болтовня
  • Ним (язык программирования)

Языки с ручным управлением памятью [ править ]

  • Ада
  • C
  • C ++
  • Фортран
  • Паскаль
  • Ржавчина
  • Цель-C
  • Зиг

Языки с детерминированным управлением памятью [ править ]

  • Ада
  • C
  • C ++
  • Фортран
  • Паскаль
  • Ржавчина [1] [2]
  • Цель-C
  • Зиг

Языки с автоматическим подсчетом ссылок (ARC) [ править ]

  • Цель-C
  • Быстрый
  • Visual Basic
  • Xojo

Языки на основе списков - LISP [ править ]

Языки на основе списков - это тип языка со структурой данных , основанный на структуре данных списка .

  • Лисп
    • Дуга
    • Clojure
    • Common Lisp
    • Дилан
    • Emacs Lisp
    • Ракетка
    • Схема
    • Логотип
  • Радость
  • р
  • Источник
  • Tcl
    • Чай
  • ПРОФ

Маленькие языки [ править ]

Маленькие языки [3] обслуживают специализированную проблемную область.

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

Языки, основанные на логике [ править ]

Языки, основанные на логике, определяют набор атрибутов, которые должно иметь решение, а не набор шагов для получения решения.

Известные языки, следующие этой парадигме программирования, включают:

  • ALF
  • Алма-0
  • CLACL (язык CLAC)
  • Карри
  • Фрил
  • Flix (функциональный язык программирования с первоклассными ограничениями Datalog)
  • Янус
  • λProlog (язык логического программирования с полиморфной типизацией, модульным программированием и программированием высшего порядка)
  • Оз , и система программирования Моцарта кроссплатформенная Оз
  • Пролог (формулирует данные и механизм оценки программы в виде специальной формы математической логики, называемой логикой Хорна, и общего механизма доказательства, называемого логическим разрешением )
    • Меркурий (на основе Пролога)
    • Visual Prolog (объектно-ориентированное расширение Prolog)
  • ROOP

Машинные языки [ править ]

Машинные языки напрямую выполняются центральным процессором компьютера. Обычно они формулируются как битовые комбинации, обычно представленные в восьмеричной или шестнадцатеричной системе.. Каждая битовая комбинация заставляет схемы в ЦП выполнять одну из основных операций оборудования. Активация определенных электрических входов (например, контактов корпуса ЦП для микропроцессоров) и логических настроек для значений состояния ЦП управляют вычислениями процессора. Отдельные машинные языки специфичны для семейства процессоров; машинный код для одного семейства процессоров не может работать непосредственно на процессорах в другом семействе, если рассматриваемые процессоры не имеют дополнительного оборудования для его поддержки (например, процессоры DEC VAX включают режим совместимости PDP-11). Они (по сути) всегда определяются разработчиком ЦП, а не третьими сторонами. Символическая версия, язык ассемблера процессора , в большинстве случаев также определяется разработчиком. Некоторые часто используемые машинные кодынаборы инструкций :

  • РУКА
    • Исходный 32-битный
    • 16-битные инструкции Thumb (используются подмножество или регистры)
    • 64-разрядная (значительное изменение архитектуры, больше регистров)
  • Дек :
    • 18-битный: PDP-1 , PDP-4 , PDP-7 , PDP-9 , PDP-15
    • 12-битный: PDP-5 , PDP-8 , LINC-8 , PDP-12
    • 36-бит: PDP-6 , PDP-10 , DECSYSTEM-20
    • 16 бит: PDP-11 (под влиянием VAX и M68000)
    • 32-разрядная версия : VAX
    • 64-разрядная версия: Alpha
  • Intel 8008 , 8080 и 8085
    • Зилог Z80
  • x86 :
    • 16-битный x86 , впервые использованный в Intel 8086
      • Intel 8086 и 8088 (последний использовался в первом и раннем IBM PC )
      • Intel 80186
      • Intel 80286 (первый процессор x86 с защищенным режимом , используемый в IBM AT )
    • IA-32 , представленный в 80386
    • x86-64 Исходная спецификация была создана AMD . Существуют варианты поставщиков, но по сути они одинаковы:
      • AMD AMD64
      • Intel, Intel 64
  • IBM [b]
    • 305
    • 650
    • 701
    • 702 , 705 и 7080
    • 704 , 709 , 7040 , 7044, 7090 , 7094
    • 1400 серии , 7010
    • 7030
    • 7070
    • System / 360 и его последователи, включая z / Architecture
  • MIPS
  • Motorola 6800
  • Семейство Motorola 68000 (процессоры, используемые в ранних компьютерах Apple Macintosh и Sun )
  • Технология MOS 65xx
    • 6502 (ЦП для VIC-20 , Apple II и Atari 800 )
    • 6510 (процессор для Commodore 64 )
    • Western Design Center 65816/65802 (ЦП для Apple IIGS и (вариант) Super Nintendo Entertainment System )
  • National Semiconductor NS320xx
  • POWER , впервые использованный в IBM RS / 6000
    • PowerPC - используется в Power Macintosh и во многих игровых консолях , особенно седьмого поколения .
    • Питание ISA
  • Sun Microsystems (теперь Oracle ) SPARC
  • UNIVAC [b]
    • 30-битные компьютеры: 490 , 492, 494, 1230
    • 36-битные компьютеры
      • 1101 , 1103 , 1105
      • 1100/2200 серии
  • МЦСТ Эльбрус 2000

Макроязыки [ править ]

Макроязыки с текстовой подстановкой [ править ]

Макроязыки преобразуют один файл исходного кода в другой. «Макрос» - это, по сути, короткий фрагмент текста, который расширяется в более длинный (не путать с гигиеническими макросами ), возможно, с подстановкой параметров. Они часто используются для предварительной обработки исходного кода. Препроцессоры также могут предоставлять такие средства, как включение файлов .

Макроязыки могут быть ограничены воздействием на специально помеченные области кода (предварительно зафиксированные с помощью a #в случае препроцессора C). В качестве альтернативы они не могут, но в этом случае по-прежнему часто нежелательно (например) расширять макрос, встроенный в строковый литерал , поэтому им все еще требуется элементарное понимание синтаксиса. В этом случае они часто применимы более чем к одному языку. В отличие от языков с встраиваемым исходным кодом, таких как PHP , которые являются полнофункциональными.

  • cpp (препроцессор C)
  • m4 (первоначально от AT&T, в комплекте с Unix)
  • ML / I (макропроцессор общего назначения)

Языки прикладных макросов [ править ]

Языки сценариев, такие как Tcl и ECMAScript ( ActionScript , ECMAScript для XML , JavaScript , JScript ), были встроены в приложения. Иногда их называют «макроязыками», хотя и в несколько ином смысле, чем макросы подстановки текста, такие как m4 .

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

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

  • C ++
  • CWIC
  • Завиток
  • D
  • eC
  • Emacs Lisp
  • Эликсир
  • F #
  • Groovy
  • Haskell
  • Юлия
  • Лисп
  • Lua
  • Система Мод
  • Mathematica
  • META II (и META I, подмножество)
  • MetaOCaml
  • Nemerle
  • Ним
  • Perl
  • Python
  • Рубин
  • Ржавчина [4]
  • Схема
  • ПоследовательностьL
  • Болтовня
  • Источник
  • TREEMETA
  • Язык Wolfram Language

Мультипарадигмальные языки [ править ]

Мультипарадигмальные языки поддерживают несколько парадигм программирования . Они позволяют программе использовать более одного стиля программирования . Цель состоит в том, чтобы позволить программистам использовать лучший инструмент для работы, признавая, что ни одна парадигма не решает все проблемы самым простым или наиболее эффективным способом.

  • 1С: Предприятие язык программирования (общий, императивный, объектно-ориентированный, прототипный, функциональный)
  • Ada ( параллельная , распределенная , универсальная ( метапрограммирование шаблонов ), императивная , объектно-ориентированная (на основе классов ))
  • ALF ( функциональный , логический )
  • Алма-0 (ограничение, императив, логика)
  • APL (функциональный, императивный, объектно-ориентированный (на основе классов))
  • БЕТА (функциональная, императивная, объектно-ориентированная (на основе классов))
  • C ++ (общий, императивный, объектно-ориентированный (на основе классов), функциональный, метапрограммирование)
  • C # (общий, императивный, объектно-ориентированный (на основе классов), функциональный, декларативный)
  • Цейлон (общий, императивный, объектно-ориентированный (на основе классов), функциональный, декларативный)
  • ChucK (императивный, объектно-ориентированный, основанный на времени, параллельный, на лету)
  • Кобра (общая, императивная, объектно-ориентированная (классовая), функциональная, договорная)
  • Common Lisp (функциональный, императивный, объектно-ориентированный (на основе классов), аспектно-ориентированный (пользователь может добавлять дополнительные парадигмы, например, логику))
  • Curl (функциональный, императивный, объектно-ориентированный (на основе классов), метапрограммирование)
  • Карри (параллельный, функциональный, логический)
  • D (общий, императивный, функциональный, объектно-ориентированный (на основе классов), метапрограммирование)
  • Delphi Object Pascal (общий, императивный, объектно-ориентированный (на основе классов), метапрограммирование)
  • Дилан (функциональный, объектно-ориентированный (классовый))
  • eC (общий, императивный, объектно-ориентированный (на основе классов))
  • ECMAScript (функциональный, императивный, объектно-ориентированный (на основе прототипов))
    • ActionScript
    • ECMAScript для XML
    • JavaScript
    • JScript
  • Eiffel (императивный, объектно-ориентированный (на основе классов), общий, функциональный (агенты), параллельный (SCOOP))
  • F # (функциональный, общий, объектно-ориентированный (на основе классов), ориентированный на язык)
  • Fantom (функциональный, объектно-ориентированный (классовый))
  • Go (императив, процедурный),
  • Groovy (функциональный, объектно-ориентированный (на основе классов), императивный, процедурный)
  • Гавань
  • Прыгать
  • J (функциональный, императивный, объектно-ориентированный (на основе классов))
  • Юлия (императивная, множественная отправка («объектно-ориентированная»), функциональная, метапрограммирование)
  • LabVIEW ( поток данных , визуальный )
  • Лава (объектно-ориентированная (классовая), визуальная)
  • Lua (функциональный, императивный, объектно-ориентированный (на основе прототипов ))
  • Меркурий (функциональный, логический, объектно-ориентированный)
  • Протоколы метаобъектов (объектно-ориентированные (на основе классов, на основе прототипов))
  • Nemerle (функциональный, объектно-ориентированный (классовый), императивный, метапрограммирование)
  • Objective-C (императивный, объектно-ориентированный (классовый), рефлексивный)
  • OCaml (функциональный, императивный, объектно-ориентированный (на основе классов), модульный)
  • Oz (функциональная (оценка: нетерпеливый , ленивый ), логика, ограничение , необходимо, объектно-ориентированный (класс на основе), одновременно, распределенных), и Моцарт Программирование системы кросс-платформенный Oz
  • Object Pascal (императивный, объектно-ориентированный (на основе классов))
  • Perl (императивный, функциональный (не может быть чисто функциональным), объектно-ориентированный, ориентированный на классы, аспектно-ориентированный (через модули))
  • PHP (императивный, объектно-ориентированный, функциональный (не может быть чисто функциональным))
  • Pike (интерпретируемый, универсальный, высокоуровневый, кроссплатформенный, динамический язык программирования)
  • Prograph (поток данных, объектно-ориентированный (на основе классов), визуальный)
  • Python (функциональный, скомпилированный, интерпретируемый, объектно-ориентированный (на основе классов), императивный, метапрограммирование, расширение, нечистый, интерактивный режим, итеративный, отражающий, скриптовый)
  • R (массив, интерпретируемый, нечистый, интерактивный режим, на основе списка, на основе объектно-ориентированного прототипа, сценарии)
  • Ракетка (функциональная, императивная, объектно-ориентированная (классовая) и может быть расширена пользователем)
  • REBOL (функциональный, императивный, объектно-ориентированный (на основе прототипов), метапрограммирование (диалект))
  • Красный (функциональный, императивный, объектно-ориентированный (на основе прототипов), метапрограммирование (диалект))
  • ROOP (императивный, логический, объектно-ориентированный (на основе классов), на основе правил)
  • Ruby (императивный, функциональный, объектно-ориентированный (на основе классов), метапрограммирование)
  • Rust (параллельный, функциональный, императивный, объектно-ориентированный, общий, метапрограммирование, скомпилированный)
  • Scala (функциональный, объектно-ориентированный)
  • Seed7 (императивный, объектно-ориентированный, общий)
  • SISAL (параллельный, поток данных, функциональный)
  • Таблицы (функциональные, визуальные)
  • Swift (протокольно-ориентированный, объектно-ориентированный, функциональный, императивный, блочно-структурированный)
  • Tcl (функциональный, императивный, объектно-ориентированный (на основе классов))
    • Чай (функциональный, императивный, объектно-ориентированный (классовый))
  • Windows PowerShell (функциональная, императивная, конвейерная, объектно-ориентированная (на основе классов))
  • Язык Wolfram Language

Численный анализ [ править ]

Несколько языков программирования общего назначения, таких как C и Python , также используются для технических вычислений, этот список посвящен языкам, почти исключительно используемым для технических вычислений.

  • ЦЕЛИ
  • AMPL
  • Аналитика
  • Фортран
  • FreeMat
  • ГАУСС
  • GAMS
  • GNU Octave
  • Юлия
  • Система Клерера-Мая
  • Mathematica
  • MATLAB
  • ПРОЗА
  • р
  • Сенека - вариант Оберона
  • Scilab
  • Язык Wolfram Language

Неанглийские языки [ править ]

  • Chinese BASIC - китайский
  • Fjölnir - Исландский
  • Language Symbolique d'Enseignement - французский
  • Лексика - Испанский
  • Рапира - Русский
  • ежил - тамильский

Объектно-ориентированные языки на основе классов [ править ]

Основанные на классах языки объектно-ориентированного программирования поддерживают объекты, определенные их классом. Определения классов включают данные членов. Передача сообщений является понятие ключ (если не ключевое понятие) в объектно-ориентированных языках.

Полиморфные функции, параметризованные классом некоторых из их аргументов, обычно называются методами. В языках с единственной отправкой классы обычно также включают определения методов. В языках с множественной отправкой методы определяются универсальными функциями . Есть исключения, когда единичные методы диспетчеризации являются универсальными функциями (например , объектная система Bigloo ).

Множественная отправка [ править ]

  • Common Lisp
  • Сесил
  • Дилан
  • Юлия

Единичная отправка [ править ]

  • ActionScript 3.0
  • Актер
  • Ада 95 и Ада 2005 (многоцелевой язык)
  • APL
  • БЕТА
  • C ++
  • C #
  • Цейлон
  • Oxygene (ранее назывался Chrome)
  • ChucK
  • Кобра
  • Холодный синтез
  • Завиток
  • D
  • Язык спецификации распределенных приложений (DASL)
  • Delphi Object Pascal
  • E
  • GNU E
  • eC
  • Эйфелева
    • Sather
    • Ubercode
  • F-скрипт
  • Фортран 2003
  • Крепость
  • Гамбас
  • Язык Game Maker
  • Гавань
  • J
  • Ява
    • Обработка
    • Groovy
    • Присоединяйтесь к Java
    • Чай
    • X10
  • LabVIEW
  • Лава
  • Lua
  • Модула-2 (абстракция данных, скрытие информации, строгая типизация, полная модульность)
    • Modula-3 (в Modula-2 добавлено больше объектно-ориентированных функций)
  • Nemerle
  • NetRexx
  • Оберон-2 (полная объектно-ориентированная эквивалентность в оригинальной строго типизированной виртовской манере)
  • Object Pascal
  • Объект REXX
  • Objective-C (надмножество C, добавляющее производную объектную модель Smalltalk и синтаксис передачи сообщений)
  • OCaml
  • Оз, Система программирования Моцарта
  • Perl 5
  • PHP
  • Щука
  • Prograph
  • Python (интерпретирующий язык, необязательно объектно-ориентированный)
  • Революция (программист не выбирает объекты)
  • Рубин
  • Scala
  • Speakeasy
  • Simula (первый объектно-ориентированный язык, разработанный Оле-Йоханом Далем и Кристен Найгаард )
  • Smalltalk (чистая объектная ориентация, разработан в Xerox PARC )
    • F-скрипт
    • Маленький Smalltalk
    • Pharo
    • Писк
      • Царапать
    • IBM VisualAge
    • VisualWorks
  • ВРАЩЕНИЕ
  • Суперколлайдер
  • VBScript (язык сценариев макросов Microsoft Office)
  • Визуальный DataFlex
  • Visual FoxPro
  • Визуальный пролог
  • X ++
  • Xojo
  • XOTcl

Объектно-ориентированные языки на основе прототипов [ править ]

Языки на основе прототипов - это объектно-ориентированные языки, в которых удалено различие между классами и экземплярами:

  • 1С: Предприятие язык программирования
  • Параллельный язык на основе акторов (ABCL, ABCL / 1, ABCL / R, ABCL / R2, ABCL / c +)
  • Агора
  • Сесил
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript (сначала Mocha, затем LiveScript)
    • JScript
  • ЕТоуз в Писк
  • Ио
  • Lua
  • MOO
  • NewtonScript
  • Косой
  • р
  • REBOL
  • красный
  • Self (первый язык на основе прототипов, полученный из Smalltalk )
  • ТАДС

Внешние языки правил [ править ]

Внешние языки правил обозначают блоки кода их отступами .

  • ISWIM , абстрактный язык, который ввел правило
  • ABC , родительский элемент Python
    • Python
      • Кобра
      • Бу
      • Джинн
  • Миранда , родитель Хаскелла
    • Оруэлл
    • Haskell
      • Карри
  • Эликсир (, делать: блоки)
  • F #
  • Ним
  • Оккам
  • ВРАЩЕНИЕ

Процедурные языки [ править ]

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

  • Ада (многоцелевой язык)
  • АЛГОЛ (очень влиятельный дизайн языка; второй компилятор языка высокого уровня)
    • МАЛЕНЬКИЙ Машинный АЛГОЛ как язык
  • Алма-0
  • BASIC (им не хватает большей части модульности в (особенно) версиях примерно до 1990 года)
  • BCPL
  • БЛАЖЕНСТВО
  • C
  • C ++ (C с объектами плюс многое другое, например, дженерики через STL)
  • C # (аналогично Java / C ++)
  • Цейлон
  • ХОЛОД
  • ChucK (синтаксис, подобный C / Java, с новыми элементами синтаксиса для времени и параллелизма)
  • КОБОЛ
  • Кобра
  • Холодный синтез
  • Комбинированный язык программирования (CPL)
  • Завиток
  • D
  • Распределенный язык спецификации приложений (DASL) (объединяет декларативное программирование и императивное программирование )
  • eC
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript (сначала Mocha, затем LiveScript)
    • JScript
    • Источник
  • Эйфелева
  • Фортран (улучшенная модульность в более поздних стандартах)
    • F
  • ГАУСС
  • Идти
  • Гавань
  • HyperTalk
  • Ява
    • Groovy
    • Присоединяйтесь к Java
    • Чай
  • Веселый
  • Юлия
  • Язык H
  • Лассо
  • Модула-2 (принципиально на модулях)
  • Mathematica
  • MATLAB
  • Меса
  • MUMPS (первый выпуск был более модульным, чем другие языки того времени; с тех пор стандарт стал еще более модульным)
  • Nemerle
  • Ним
  • Оберон , Оберон-2 (улучшенные, меньшие, более быстрые, безопасные дополнения к Модуле-2)
    • Компонент Паскаль
    • Сенека
  • OCaml
  • Оккам
  • Ориэль
  • Паскаль (преемник АЛГОЛА 60, предшественник Модула-2)
    • Свободный Паскаль (FPC)
    • Object Pascal , Delphi
  • PCASTL
  • Perl
  • Щука
  • PL / C
  • PL / I (большой язык общего назначения, первоначально для мэйнфреймов IBM)
  • Плюс
  • PowerShell
  • ПРОЗА
  • Python
  • р
  • Рапира
  • RPG (доступна только в IBM «s System я MIDRANGE компьютеры)
  • Ржавчина
  • Сленг
  • VBScript
  • Visual Basic
  • Visual FoxPro
  • Язык Wolfram Language
  • Microsoft Dynamics AX (X ++)

Языки запросов [ править ]

Рефлексивный язык [ править ]

Отражающие языки позволяют программам проверять и, возможно, изменять свою структуру высокого уровня во время выполнения или компиляции. Это является наиболее распространенным в виртуальных языках машины программирования высокого уровня , таких как Smalltalk , и менее распространенных языках программирования низкого уровня , как C . Языки и платформы, поддерживающие рефлексию:

  • Befunge
  • Цейлон
  • Очарование
  • ChucK
  • CLI
    • C #
  • Кобра
  • Компонент Pascal BlackBox Component Builder
  • Завиток
  • Сайфер
  • Delphi Object Pascal
  • eC
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript
    • JScript
  • Emacs Lisp
  • Эйфелева
  • Гавань
  • Юлия
  • JVM
    • Ява
    • Groovy
    • Присоединяйтесь к Java
    • X10
  • Лисп
    • Clojure
    • Common Lisp
    • Дилан
    • Логотип
    • Схема
  • Lua
  • Система Мод
  • Оберон-2 - Система ETH Оберон
  • Цель-C
  • PCASTL
  • Perl
  • PHP
  • Пико
  • Поплог
    • ПОП-11
  • PowerShell
  • Пролог
  • Python
  • REBOL
  • красный
  • Рубин
  • Smalltalk (чистая объектная ориентация, первоначально от Xerox PARC )
    • F-скрипт
    • Маленький Smalltalk
    • Себя
    • Писк
    • IBM VisualAge
    • VisualWorks
  • Снобол
  • Tcl
  • Язык Wolfram Language
  • XOTcl
  • X ++
  • Xojo

Языки, основанные на правилах [ править ]

Языки на основе правил создают экземпляры правил при активации условиями в наборе данных. Из всех возможных активаций выбирается некоторый набор и выполняются операторы, принадлежащие этим правилам. Языки, основанные на правилах, включают: [ необходима ссылка ]

  • awk
  • ЗАЖИМЫ
  • Правила обработки ограничений
  • Слюни
  • Язык программирования агента GOAL
  • Джесс
  • OPS5
  • Пролог
  • ToonTalk - роботы - это правила
  • Mathematica
  • XSLT [ необходима ссылка ]
  • Язык Wolfram Language

Языки сценариев [ править ]

« Язык сценариев » имеет два явно разных, но на самом деле схожих значения. В традиционном смысле языки сценариев предназначены для автоматизации часто используемых задач, которые обычно включают вызов или передачу команд внешним программам. Многие сложные прикладные программы предоставляют встроенные языки, позволяющие пользователям автоматизировать задачи. Те, что являются интерпретирующими , часто называют языками сценариев.

В последнее время многие приложения имеют встроенные традиционные языки сценариев, такие как Perl или Visual Basic , но все еще используется довольно много родных языков сценариев. Многие языки сценариев компилируются в байт-код, а затем этот (обычно) независимый от платформы байт-код запускается через виртуальную машину (по сравнению с виртуальной машиной Java ).

  • AppleScript
  • AutoHotKey
  • AutoIt
  • AWK
  • до н.э
  • BeanShell
  • Баш
  • Ch (Встраиваемый интерпретатор C / C ++)
  • CLI
    • C # (скомпилирован в байт-код и запущен JIT внутри виртуальной машины)
  • КЛИСТ
  • Холодный синтез
  • ECMAScript
    • ActionScript
    • ECMAScript для XML
    • JavaScript (сначала Mocha, затем LiveScript)
    • JScript
    • Источник
  • Emacs Lisp
  • CMS EXEC
  • EXEC 2
  • F-скрипт
  • Язык Game Maker (GML)
  • ICI
  • Ио
  • JASS
  • Юля (все равно скомпилирована на лету в машинный код )
  • JVM
    • Groovy
    • Присоединяйтесь к Java
  • Кш
  • Лассо
  • Lua
  • MAXScript
  • MEL
  • Объект REXX (OREXX, OOREXX)
  • Ориэль
  • Скрипт паскаля
  • Perl
  • PHP (предназначен для веб-серверов)
  • PowerShell
  • Python
  • р
  • REBOL
  • красный
  • Rexx
  • Революция
  • Рубин
  • Ш
  • Болтовня
  • Сленг
  • sed
  • Чай
  • Tcl
  • TorqueScript
  • VBScript
  • WebDNA , посвященная веб-сайтам, управляемым базами данных
  • Windows PowerShell ( интерфейс командной строки на основе .NET )
  • Winbatch
  • Многие языки команд оболочки, такие как оболочка Unix или DIGITAL Command Language (DCL) в VMS, обладают мощными возможностями создания сценариев.

Языки на основе стека [ править ]

Языки на основе стека - это тип языка со структурой данных , основанный на структуре данных стека .

  • Битник
  • Canonware Onyx [5]
  • Фактор
  • Четвертый
  • Радость (все функции работают со стеками параметров вместо именованных параметров)
  • Пит
  • Poplog через язык его реализации POP-11
  • PostScript
  • РПЛ
  • Сленг

Синхронные языки [ править ]

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

Примеры:

  • Аргус
  • Averest
  • Эстерель
  • Блеск
  • Сигнал

Языки затенения [ править ]

Язык затенения является графическим программированием языка приспособлен для программирования шейдерных эффектов. Такие языковые формы обычно состоят из специальных типов данных, таких как «цвет» и «нормальный». В связи с разнообразием целевых рынков компьютерной 3D-графики.

Рендеринг в реальном времени [ править ]

Они обеспечивают как более высокую аппаратную абстракцию, так и более гибкую модель программирования, чем предыдущие парадигмы, в которых жестко запрограммированы уравнения преобразования и затенения. Это дает программисту больший контроль над процессом рендеринга и предоставляет более богатый контент с меньшими накладными расходами.

  • Язык ассемблера графики Adobe (AGAL) [6]
  • Ассемблер ARB (сборка ARB)
  • Язык шейдинга OpenGL (GLSL или glslang)
  • Язык шейдеров высокого уровня (HLSL) или язык сборки шейдеров DirectX
  • Язык шейдеров PlayStation (PSSL)
  • Язык затенения металлов (MSL)
  • Cg
  • Shining Rock Shading Language (SRSL) [7]
  • Искра [8]
  • Закись азота [9]
  • Godot Shading Language [10]

Автономный рендеринг [ править ]

Языки затенения, используемые при автономном рендеринге, обеспечивают максимальное качество изображения. Обработка таких шейдеров требует много времени. Требуемая вычислительная мощность может быть дорогостоящей из-за их способности давать фотореалистичные результаты.

  • Язык затенения RenderMan (RSL)
  • Язык затенения Houdini VEX (VEX)
  • Язык затенения Gelato
  • Открытый язык шейдинга (OSL)

Языки обработки синтаксиса [ править ]

Эти языки помогают создавать лексические анализаторы и парсеры для контекстно-свободных грамматик .

  • ANTLR
  • Coco / R (EBNF с семантикой)
  • GNU bison (версия Yacc от FSF)
  • GNU Flex (версия Lex для FSF)
  • glex / gyacc (компилятор GoboSoft для Eiffel)
  • lex (Лексический анализ, от Bell Labs)
  • M4
  • Грамматика выражения синтаксического анализа (PEG)
  • Пролог
  • Emacs Lisp
  • Лисп
  • SableCC
  • Схема
  • yacc (еще один компилятор компилятора от Bell Labs)
  • JavaCC

Системные языки [ править ]

В языках программирования систем предназначены для задач низкого уровня , как управление памятью и управление задачами. Под языком системного программирования обычно понимается язык программирования, используемый для системного программирования; такие языки предназначены для написания системного программного обеспечения, которое обычно требует иных подходов к разработке по сравнению с прикладным программным обеспечением.

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

Языки трансформации [ править ]

Визуальные языки [ править ]

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

  • Аналитика
  • Блочно
  • ДРАКОН
  • Fabrik
  • G (используется в LabVIEW )
  • Кузнечик
  • Лава
  • Лимнор
  • Максимум
  • NXT-G
  • Язык программирования Pict
  • Prograph
  • Чистые данные
  • Кварцевый композитор
  • Scratch (написано на Squeak , версии Smalltalk и основано на нем )
  • Щелчок!
  • Simulink
  • Таблицы
  • Stateflow
  • Подтекст
  • ToonTalk
  • VEE
  • VisSim
  • Vvvv
  • XOD (язык программирования)
  • EICASLAB

Языки вирта [ править ]

Ученый-компьютерщик Никлаус Вирт разработал и реализовал несколько влиятельных языков.

  • АЛГОЛ W
  • Эйлер
  • Modula
    • Модула-2 , Модула-3 , варианты
      • Вариант Obliq Modula 3
  • Оберон (Оберон, Оберон-07, Оберон-2)
    • Компонент Паскаль
    • Оберон-2
  • Паскаль
    • Object Pascal (общее название для Delphi , Free Pascal , Oxygene и других)

Языки на основе XML [ править ]

Это языки, основанные на XML или работающие с ним .

  • Муравей
  • ECMAScript для XML
  • MXML
  • LZX
  • XAML
  • XPath
  • XQuery
  • XProc
  • Расширяемые преобразования языка таблиц стилей ( XSLT )

См. Также [ править ]

  • Парадигма программирования
  • IEC 61131-3 - стандарт языков программирования программируемых логических контроллеров (ПЛК)
  • Образовательный язык программирования
  • Эзотерический язык программирования

Заметки [ править ]

  1. ^ Объектами SQL являются наборы записей базы данных , называемые таблицами. Полный язык программирования может определять алгоритмы независимо от времени выполнения . Таким образом, можно считать, что алгоритм генерирует полезные результаты. Напротив, SQL может только выбирать записи, которые ограничены текущей коллекцией, данными, имеющимися в системе, а не выдавать заявление о правильности результата.
  2. ^ a b Подмодели не указаны, только базовые модели
  3. ^ Swift использует автоматический подсчет ссылок .

Ссылки [ править ]

  1. ^ "Понимание прав собственности - язык программирования Rust" . doc.rust-lang.org .
  2. ^ "Умные указатели - язык программирования Rust" . doc.rust-lang.org .
  3. ^ Джон Бентли (AT&T) август 1986 CACM 29 (8) "Little Languages", стр. 711-721 из его колонки Programming Pearls.
  4. ^ «Процедурные макросы для генерации кода из атрибутов» . doc.rust-lang.org .
  5. ^ "Canonware Onyx" . Canonware.com . Архивировано из оригинального 13 марта 2017 года . Проверено 7 июля 2018 года .
  6. ^ Скабиа, Марко. «Что такое АГАЛ» . Adobe Developer Connection . Adobe . Проверено 8 мая 2018 .
  7. ^ Ходорович, Люк. «Языки затенения» . www.shiningrocksoftware.com . Программное обеспечение Shining Rock . Проверено 8 мая 2018 .
  8. ^ Фоли, Тим; Ханрахан, Пат. «Spark: модульные составные шейдеры для графического оборудования» . Программное обеспечение Intel . ACM . Проверено 8 мая 2018 .
  9. ^ "Часто задаваемые вопросы о закиси азота" . oxidgames.com . Проверено 8 мая 2018 .
  10. ^ Линецкий, Хуан; Манзур, Ариэль. «Язык затенения - последняя версия документации Godot Engine» . docs.godotengine.org . Сообщество Годо . Проверено 8 мая 2018 .
  11. ^ Вульф, Вашингтон; Рассел, ДБ; Хаберман, АН (декабрь 1971 г.). «BLISS: язык системного программирования». Коммуникации ACM . 14 (12): 780–790. CiteSeerX 10.1.1.691.9765 . DOI : 10.1145 / 362919.362936 . 
  12. ^ «Приложения C ++» .
  13. ^ [1]
  14. ^ «Mozilla Research» . 1 января 2014 г.