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

редактировать
Статья списка Викимедиа

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

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

Содержание

  • 1 Языки массивов
  • 2 Языки ассемблера
  • 3 Языки разработки
  • 4 Языки программирования с ограничениями
  • 5 Языки интерфейса командной строки
  • 6 Скомпилированные языки
  • 7 Параллельные языки
  • 8 языков с фигурными скобками
  • 9 языков потока данных
  • 10 языков, ориентированных на данные
  • 11 языков таблиц решений
  • 12 декларативных языков
  • 13 встраиваемых языков
    • 13.1 в исходном коде
      • 13.1.1 Сторона сервера
      • 13.1.2 Сторона клиента
    • 13.2 В объектном коде
  • 14 Образовательные языки
  • 15 Эзотерические языки
  • 16 Языки расширений
  • 17 Языки четвертого поколения
  • 18 Функциональные языки
    • 18.1 Pure
    • 18.2 Impure
  • 19 Языки описания оборудования
    • 19.1 HDL для проектирования аналоговых схем
    • 19.2 HDL для проектирования цифровых схем
  • 20 императивных языков
  • 21 языков интерактивного режима
  • 22 интерпретируемых языка
  • 23 итеративных языка
  • 24 языков по типу управления памятью
    • 24.1 Сборщик мусора d языки
    • 24.2 Языки с ручным управлением памятью
    • 24.3 Языки с детерминированным управлением памятью
    • 24.4 Языки с автоматическим подсчетом ссылок (ARC)
  • 25 Языки на основе списков - LISP
  • 26 Маленькие языки
  • 27 Языки на основе логики
  • 28 Машинные языки
  • 29 Макроязыки
    • 29.1 Языки макросов с текстовой заменой
    • 29.2 Языки прикладных макросов
  • 30 Языки метапрограммирования
  • 31 Многопарадигмальные языки
  • 32 Числовые анализ
  • 33 неанглийских языка
  • 34 объектно-ориентированных языков на основе классов
    • 34.1 множественная отправка
    • 34.2 одиночная отправка
  • 35 объектно-ориентированных языков на основе прототипов
  • 36 выкл. языки сторонних правил
  • 37 процедурные языки
  • 38 языки запросов
  • 39 рефлексивный язык
  • 40 основанные на правилах языки
  • 41 языки сценариев
  • 42 языки на основе стека
  • 43 синхронные языки
  • 44 языка шейдинга
    • 44.1 Визуализация в реальном времени
    • 44.2 Автономная визуализация
  • 45 Языки обработки синтаксиса
  • 46 Системные языки
  • 47 Языки преобразования
  • 48 Визуальные языки
  • 49 Языки Wirth
  • 50 языков на основе XML
  • 51 См. Также
  • 52 Примечания
  • 53 Ссылки

Языки массивов

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

Ассемблерные языки

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

языки разработки

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

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

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

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

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

Скомпилировано languages ​​

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

  • ActionScript
  • Ada (многоцелевой язык)
  • ALGOL (очень влиятельный дизайн языка; второй компилятор языка высокого уровня)
    • SMALL Machine ALGOL Like Language
  • Ballerina (скомпилирован в байт-код, специфичный для Ballerina Runtime (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 (Цифровой интерактивный бизнес-ориентированный язык)
  • Дилан
  • eC
  • Эйфель (объектно-ориентированный язык, разработанный Бертраном Мейером )
  • Elm
  • Emacs Lisp
  • Emerald
  • Erlang
  • F# (скомпилирован в CIL, для создания образа среды выполнения)
  • Factor
  • Fortran (первый скомпилированный язык высокого уровня от IBM 's John Backus )
  • GAUSS
  • Go
  • Gosu (скомпилировано в JVM байт-код )
  • Groovy (скомпилировано в JVM байт-код )
  • Haskell
  • Harbour
  • Java (обычно компилируется в JVM байт-код, хотя существуют предварительные компиляторы (AOT) которые компилируются в машинный код )
  • 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 байт-код )
  • Схема (некоторые реализации, например Gambit)
  • SequenceL - чисто функциональный, с автоматическим распараллеливанием и без гонок
  • Simula (первый объектно-ориентированный язык, надмножество ALGOL 60 )
  • Smalltalk компилируется в независимый от платформы байт-код для виртуальной машины
  • Swift
  • ML
  • Turing
  • Vala (компилятор для система типов GObject)
  • Visual Basic (используйте Common Intermediate Language (CIL), который JIT скомпилирован в собственную среду выполнения)
  • Visual FoxPro
  • Visual Prolog
  • Xojo

Параллельные языки

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

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

Языки с фигурными скобками

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

языки потока данных

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

Языки, ориентированные на данные

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

Языки таблиц решений

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

Декларативные языки

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

Встраиваемые языки

В исходном коде

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

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

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

На стороне сервера

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

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

Клиентская сторона

В объектном коде

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

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

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

Эзотерические языки

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

Языки расширений

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

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

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

Функциональные языки

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

Pure

Impure

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

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

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

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

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

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

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

языки интерактивного режима

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

Интерпретируемые языки

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

Итерационные языки

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

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

Языки со сборкой мусора

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

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

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

Языки на основе списков - LISP

Языки на основе списков являются типом языков, основанных на структуре данных list.

Маленькие языки

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

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

Языки на основе логики

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

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

Машинные языки

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

Макроязыки

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

Макро языки преобразуют один файл исходного кода в другой. «Макрос» - это, по сути, короткий фрагмент текста, который расширяется в более длинный (не путать с гигиеническими макросами ), возможно, с подстановкой параметров. They are often used to preprocess source code. Preprocessors can also supply facil Такие вещи, как включение файла.

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

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

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

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

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

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

Многопарадигмальные языки

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

  • язык программирования 1С: Предприятие (общий, императивный, объектно-ориентированный, прототипный, функциональный)
  • Ada (параллельный, распределенный, общий (шаблонное метапрограммирование ), императивный, объектно-ориентированный (на основе классов ))
  • ALF ( функциональный, логический )
  • Alma-0 (ограничение, императив, логика)
  • APL (функциональный, императивный, объектно-ориентированный (на основе классов))
  • БЕТА (функциональный, императивный, объектно-ориентированный (на основе классов))
  • C ++ (общий, императивный, объектно-ориентированный (на основе классов), функциональный, метапрограммирование)
  • C# (общий, императивный, объектно-ориентированный (на основе классов), функциональный, декларативный)
  • Ceylon (общий, императивный, объектно-ориентированный (на основе классов), функциональный, декларативный)
  • ChucK (императивный, объектно-ориентированный, основанный на времени, параллельный, на лету)
  • Cobra (общий, императивный, объектно-ориентированный (на основе классов), функциональный, договорный)
  • Common Lisp (функциональный, императивный, объектно-ориентированный (на основе классов), аспектно -ориентированный (пользователь может добавить дополнительные парадигмы, например, логику))
  • Curl (функциональный, императивный, объектно-ориентированный. ориентированный (на основе классов), метапрограммирование)
  • Карри (параллельный, функциональный, логический)
  • D (общий, императивный, функциональный, объектно-ориентированный (на основе классов), метапрограммирование)
  • Delphi Object Pascal (общий, императивный, объектно-ориентированный (на основе классов), метапрограммирование)
  • Дилан (функциональный, объектно-ориентированный (на основе классов))
  • eC (общий, императивный, объектно-ориентированный (на основе классов))
  • ECMAScript (функциональный, императивный, объектно-ориентированный (на основе прототипов))
  • Eiffel (императивный, объектно-ориентированный (на основе классов), общий, функциональный (агенты), параллельный (SCOOP))
  • F# (функциональный, общий, объектно-ориентированный (на основе классов), ориентированный на язык)
  • Fantom (функциональный, объектно-ориентированный (на основ е классов))
  • Go (императивный, процедурный),
  • Groovy (функциональный, объектно-ориентированный (на основе классов), императивный, процедурный)
  • Harbour
  • Hop
  • J (функциональный, императивный, объектно-ориентированный (на основе классов))
  • Юлия (императивная, множественная отправка («объектно-ориентированная»), функциональная, метапрограммирование)
  • LabVIEW (поток данных, визуальный )
  • Lava (объектно-ориентированный (на основе классов), визуальный)
  • Lua (функциональный, императивный, объектно-ориентированный (на основе прототипов ))
  • Me rcury (функциональный, логический, объектно-ориентированный)
  • Протоколы метаобъектов (объектно-ориентированный (на основе классов, на основе прототипов))
  • Nemerle ( функциональный, объектно-ориентированный (на основе классов), императив, метапрограммирование)
  • Objective-C (императивный, объектно-ориентированный (на основе классов), отражающий)
  • OCaml (функциональный, императивный, объектно-ориентированный (на основе классов)), модульный)
  • Oz (функциональный (оценка: нетерпеливый, ленивый ), логический, ограничение, императивный, объектно-ориентированный (на основе классов), параллельный, распределенный) и Mozart Programming System кроссплатформенный Oz
  • Object Pascal (императивный, объектно-ориентированный (на основе классов))
  • Perl (императивный, функциональный (не может быть чисто функциональным), объектно-ориентированным, ориентированным на классы, аспектно-ориентированным (через модули))
  • PHP (императивный, объектно -ориентированный, функциональный (не может быть чисто функциональным))
  • Pike
  • Prograph (поток данных, объектно-ориентированный (на основе классов), визуальный)
  • Python (функциональный, скомпилированный, интерпретирующий ed, объектно-ориентированный (на основе классов), императивный, метапрограмми рование, расширение, нечистый, интерактивный режим, итеративный, отражающий, скриптовый)
  • R (массив, интерпретируемый, нечистый, интерактивный режим, основанный в списке, объектно-ориентированный прототип- на основе сценариев)
  • Racket (функциональный, императивный, объектно-ориентированный (на основе) и может быть предоставен пользовательскими классами)
  • REBOL (функциональный, императивный, объектно-ориентированный (прототип- на основе), метапрограммирование (диалект))
  • Красный (функциональный, императивный, объектно-ориентированный (на основе прототипа), метапрограммирование (диалект))
  • ROOP (императивный, логический, объектно-ориентированный (на основе классов), на основе правил)
  • Ruby (императивный, функциональный, объектно-ориентированный (на основе классов), метапрограммирование)
  • Rust (параллельный, функциональный, императивный, объектно-ориентированный, общий, метапрограммирование, скомпилированный)
  • Scala ( функц иональный, объектно-ориентированный)
  • Seed7 (императивный, объектно-ориентированный, универсальный)
  • SISAL (параллельный, поток данных, функциональный)
  • Таблицы (функция конечный, визуальный)
  • Swift (протокольно-ориентированный, объектно-ориентированный, функциональный, императивный, блочно-структурированный)
  • Tcl (функциональный, императивный, объектно-ориентированный (на основе классов))
    • Tea (функциональный, императивный, объектно-ориентированный (на основе классов))
  • Windows PowerShell (функциональный, императивный, конвейерный, объектно-ориентированный (на основе классов))
  • Wolfram Language

Численный анализ

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

Неанглийские языки

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

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

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

Множественная отправка

Одиночная отправка

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

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

Off-side rule languages ​​

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

Процедурные языки

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

Языки запросов

Рефлексивный язык

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

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

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

Языки сценариев

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

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

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

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

Синхронные языки

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

Примеры:

Языки затенения

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

Рендеринг в реальном времени

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

Автономный рендеринг

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

Языки обработки синтаксиса

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

Системные языки

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

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

ЯзыкOriginatorВпервые появилсяИспытал влияниеИспользуется для
ESPOL Burroughs Corporation 1961АЛГОЛ 60 MCP
PL / I IBM, SHARE 1964АЛГОЛ, ФОРТРАН, немного COBOLMultics
PL360 Niklaus Wirth 1968ALGOL 60ALGOL W
C Dennis Ritchie 1969BCPL Большинство ядер операционных систем, включая Windows NT и большинство Unix-подобных систем
PL / S IBM 196xPL / I OS / 360
BLISS Университет Карнеги-Меллона 1970ALGOL-PL / IVMS (части)
PL / 8 IBM 197xPL / I AIX
PL-6 Honeywell, Inc. 197xPL / I CP-6
SYMPL CDC 197xJOVIAL NOS подсистемы, большинство компиляторов, редактор FSE
C ++ Bjarne Stroustrup 1979C, Simula См. Приложения C ++
Ada Jean Ичбия,1983АЛГОЛ 68, Паскаль, C ++, Java, Eiffel Встроенные системы, ядра ОС, компиляторы, игры, моделирование, CubeSat, управление воздушным движением и авионика
D Digital Mars 2001C ++ Несколько доменов
Nim Андреас Рампф2008Ada, Modula-3, Lisp, C ++, Object Pascal, Python, Oberon Ядра ОС, компиляторы, игры
Rust Mozilla Research 2010C ++, Haskell, Erlang, Ruby Servo layout engine, Redox OS
Swift Apple Inc. 2014C, Objective-C, Rust macOS, iOS разработка приложений

Языки трансформации

Визуальные языки

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

Wirth языки

Информатик Никлаус Вирт разработал и реализовал несколько влиятельных языков.

Языки на основе XML

Это языки, основанные на на XML.

См. Также

Примечания

Ссылки

Последняя правка сделана 2021-05-28 12:24:11
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте