Сравнение языков программирования - Comparison of programming languages
Языки программирования используются для управления поведением машины (часто компьютер ). Нравиться естественные языки, языки программирования подчиняются правилам синтаксис и семантика.
Есть тысячи языков программирования[1] а новые создаются каждый год. Немногие языки когда-либо стали настолько популярными, чтобы их использовали несколько человек, но профессиональные программисты может использовать десятки языков за карьеру.
Большинство языков программирования не стандартизированы международными (или национальными) стандартами, даже широко используемыми, такими как Perl или же Стандартный ML (несмотря на название). Известные стандартизированные языки программирования включают АЛГОЛ, C, C ++, JavaScript (под названием ECMAScript ), Болтовня, Пролог, Common Lisp, Схема (IEEE стандарт), Ада, Фортран, КОБОЛ, SQL и XQuery.
Общее сравнение
В следующей таблице сравнивается общая и техническая информация для наиболее часто используемых языки программирования. См. Статьи по отдельным языкам для получения дополнительной информации. Обратите внимание, что в следующей таблице может отсутствовать некоторая информация.
Язык | Использование по назначению | Императив | Объектно-ориентированный | Функциональный | Процедурный | Универсальный | Светоотражающий | Событийный | Другой парадигма (s) | Стандартизированный ? |
---|---|---|---|---|---|---|---|---|---|---|
1С: Предприятие | Заявление, РАД, бизнес, Общее, сеть, мобильный | да | да | да | да | да | да | Объектно-ориентированный, Программирование на основе прототипов | Нет | |
ActionScript 3.0 | Заявление, сторона клиента, Интернет | да | да | да | да | 1996, ECMA | ||||
Ада | Заявление, встроенный, в реальном времени, система | да | да[2] | да[3] | да[4] | одновременный,[5] распределен,[6] | 1983, 2005, 2012, ANSI, ISO, ГОСТ 27831-88[7] | |||
Алдор | Высоко специфичный для домена, символические вычисления | да | да | да | Нет | |||||
АЛГОЛ 58 | Заявление | да | Нет | |||||||
АЛГОЛ 60 | Заявление | да | да | да | 1960, IFIP WG 2.1, ISO[8] | |||||
АЛГОЛ 68 | Заявление | да | да | да | да | одновременный | 1968, IFIP WG 2.1, ГОСТ 27974-88,[9] | |||
Ateji PX | Параллельное приложение | да | пи исчисление | Нет | ||||||
APL | Заявление, обработка данных | да | да | да | да | да | да | да | ориентированный на массив, молчаливый | 1989, ISO |
язык ассемблера | Общий | да | любой, синтаксис обычно очень специфичный, связанный с целевым процессором | IEEE 694-1985[10] | ||||||
AutoHotkey | Автоматизация графического интерфейса (макросы ), сильно зависящие от предметной области | да | да[11] | да | да | Нет | ||||
AutoIt | Автоматизация графического интерфейса пользователя (макросы), сильно зависящая от предметной области | да | да | да | Нет | |||||
Балерина | Интеграция, гибкость, на стороне сервера, Общее | да | да | да | да | да | параллельное, транзакционное, статически и строго типизированное программирование, схематическое / визуальное программирование | Стандарт де-факто 2018 через спецификацию языка Ballerina[12] | ||
Баш | Ракушка, сценарии | да | да | Нет, но необязательно POSIX.2 [13] | ||||||
БАЗОВЫЙ | Применение, образование | да | да | 1983, ANSI, ISO, ECMA | ||||||
BeanShell | Приложение, скрипты | да | да | да | да | В ходе выполнения, JCP[14] | ||||
БЛАЖЕНСТВО | Система | да | Нет | |||||||
BlitzMax | Приложение, игра | да | да | да | да | Нет | ||||
Бу | Приложение, скрипты игры | да | Нет | |||||||
братан | для домена, приложения | да | да | Нет | ||||||
C | Приложение, система,[15] общие, низкоуровневые операции | да | да | да | 1989, ANSI C89, ISO C90, ISO C99, ISO C11, ISO C18[16] | |||||
C ++ | Приложение, система | да | да | да | да | да | 1998. ISO / IEC 2003, ISO / IEC 2011, ISO / IEC 2014, ISO / IEC 2017.[17] | |||
C # | Приложение, RAD, бизнес, на стороне клиента, общее, на стороне сервера, Интернет | да | да | да[18] | да | да | да | да | структурированный, параллельный | 2000, ECMA, ISO[19] |
Clarion | Общие, бизнес, интернет | да | да | да[20] | Неизвестно | |||||
Чистый | Общий | да | да | Нет | ||||||
Clojure | Общий | да | одновременный | Нет | ||||||
CLU | Общий | да | да | да | да | Нет | ||||
КОБОЛ | Приложение, бизнес | да | да | да | ANSI X3.23 1968, 1974, 1985; ИСО / МЭК 1989: 1985, 2002, 2014 | |||||
Кобра | Приложение, бизнес, общие, веб | да | да | да | да | да | Нет | |||
Холодный синтез (CFML) | Интернет | да | да | Нет | ||||||
Common Lisp | Общий | да | да | да | да | да | да | да | расширяемый синтаксис, Ориентированный на массив, синтаксические макросы, множественная отправка, одновременно | 1994, ANSI |
COMAL 80 | Образование | да | да | Нет | ||||||
Кристалл | Общее назначение | да | да[21] | да | да | альфа-этап[22] | Нет | |||
Карри | Заявление | да | да | ленивая оценка, недетерминизм | Де-факто стандартный через отчет Curry Language Report | |||||
Cython | Применение, общее, числовые вычисления | да | да | да | да | аспектно-ориентированный | Нет | |||
D | Приложение, система | да | да | да | да | да | да | генеративный, параллельный | Нет | |
Дротик | Приложение, Интернет, сервер, мобильные устройства, Интернет вещей | да | да | да | структурированный | Ecma-408 стандарт | ||||
Дилан | Заявление | да | да | Нет | ||||||
Эйфель | Общие, приложения, бизнес, на стороне клиента, на стороне сервера, Интернет (EWF) | да | да | да[23][24] | да | да Erl-G | да Агенты | распределен SCOOP, Безопасный | 2005, ECMA, ISO[25] | |
Эликсир | Заявление, распределен | да | да | одновременный, распределен | Нет | |||||
Erlang | Приложение, распределенное | да | да | одновременный, распределен | Нет | |||||
Эйфория | Заявление | да | да | Нет | ||||||
Фактор | Общий | да | можно рассматривать как | да | да | ориентированный на стек | Нет | |||
FP | да | Нет | ||||||||
F # | Заявление | да | да | да | да | да | да | да | Нет | |
Четвертый | Общий | да | можно рассматривать как | ориентированный на стек | 1994, ANSI | |||||
Фортран | Применение, численные вычисления | да | да | да | да | да | на основе массивов, векторизованный, параллельный, собственный параллелизм с распределенной / общей памятью | 1966, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003, ISO / IEC 1539-1: 2010 (2008), ISO / IEC JTC1 / SC22 / WG5 N2145 (2018) | ||
FreeBASIC | Применение, численные вычисления | да | да | да | да | Нет | ||||
Гамбас | Заявление | да | да | да | Нет | |||||
Язык Game Maker | Заявление, игры | да | да | да | Нет | |||||
GLBasic | Приложение, игры | да | да | да | простой объектно-ориентированный | Нет | ||||
Идти | Приложение, Интернет, на стороне сервера | да | [26] | да | да | да | одновременный | Де-факто стандарт через спецификацию языка Go | ||
Госу | Приложение, общие, сценарии, веб | да | да | да | да | Нет | ||||
GraphTalk | Заявление | да | логика | Нет | ||||||
Groovy | Приложение, общие, сценарии, веб | да | да | да | да | да | да | да | метапрограммирование | В ходе выполнения, JCP[27] |
Гавань | Приложение, бизнес, обработка данных, общие, Интернет | да | да | да | да | да | да | декларативный | Нет | |
Haskell | Заявление | да | да | ленивая оценка | 2010, Haskell 2010[28] | |||||
Haxe | Приложение, общее, веб | да | да | да | да | да | Нет | |||
HyperNext | Применение, образование | да | да | слабо типизированный | Нет | |||||
HyperTalk | Приложение, RAD, общие | да | да | слабо типизированный | Неизвестно | |||||
Ио | Приложение, сценарии, управляемые хостом | да | да | Нет | ||||||
IPL | Общий | да | Неизвестно | |||||||
ISLISP | Общий | да | да | да | да | 1997, ISO | ||||
J | Обработка данных | ориентированный на массив, функциональный уровень молчаливый | Нет | |||||||
ДЖЕЙД | Приложение, распределенное | да | да | Нет | ||||||
Ява | Приложение, бизнес, на стороне клиента, общее, мобильная разработка, на стороне сервера, Интернет | да | да | да | да | да | да | да | одновременный | Де-факто стандарт через спецификацию языка Java |
JavaScript | На стороне клиента, на стороне сервера, в Интернете | да | да | да | да | да | да | на основе прототипа | 1997, ECMA | |
Радость | Исследование | да | ориентированный на стек | Нет | ||||||
Юля | Общие, технические вычисления | да | да | да | да | да | да | множественная отправка, мета, скаляр и ориентированный на массив, параллельный, параллельный, распределенный («облако») | Нет | |
K | Обработка данных, бизнес | ориентированный на массив, неявный | Неизвестно | |||||||
Котлин | Приложение, мобильная разработка, серверная, клиентская, веб | да | да | да | да | да | да[29] | да | Нет | |
Кш | Оболочка, скрипты | да | да | да | несколько вариантов, настраиваемые программируемые, динамически загружаемые модули | 1992, POSIX.2 [30] | ||||
LabVIEW (ГРАММ) | Применение, промышленное КИПиА | да | да | да | да | поток данных, визуальный | Нет | |||
Лисп | Общий | да | Неизвестно | |||||||
LiveCode | Приложение, RAD, общие | да | да | слабо типизированный | Нет | |||||
Logtalk | Искусственный интеллект, приложение | да | да | да | логика | Нет | ||||
LSL | Создание сценариев и анимация контента виртуальных миров | да | да | да | Скрипты существуют в объектах мира | да[31] | ||||
Lua | Приложение, встроенные скрипты | да | да[32] | да | да | да | аспектно-ориентированный | Нет[33] | ||
Клен | Символьные вычисления, числовые вычисления | да | да | да | да | распределен | Нет | |||
Mathematica | Символический язык | да | да | да | да | да | да | да | логика, распределенная | Нет |
MATLAB | Численные вычисления с высокой степенью специфики предметной области | да | да | да | Нет | |||||
Модула-2 | Приложение, система | да | да | 1996, ISO[34] | ||||||
Модула-3 | Заявление | да | да | да | Нет | |||||
МАМПЫ (М) | Приложение, базы данных | да | да | одновременный, многопользовательский, NoSQL, обработка транзакции | 1977, ANSI | |||||
Ним | Приложение, общее, веб, сценарии, система | да | да | да | да | да | да | множественная отправка, Одновременный, мета | Нет | |
Оберон | Приложение, система | да | да | Нет | ||||||
Object Pascal | Приложение, общее, мобильное приложение, Интернет | да | да | да | да | да | да | структурированный | Нет | |
Цель-C | Применение, общее | да | да | да | да | одновременный | Нет | |||
OCaml | Применение, общее | да | да | да | да | да | Нет | |||
Оккам | Общий | да | да | одновременный, ориентированный на процесс | Нет | |||||
Опа | Веб-приложения | да | да | да | распределен | Нет | ||||
OpenLisp | Общие, встроенный движок Lisp | да | да | да | да | Заменяет ISLISP, ISO | ||||
Кислород | Заявление | да | да | да | Нет | |||||
Оз-Моцарт | Применение, распространение, обучение | да | да | да | параллельный, логический | Нет | ||||
Паскаль | Применение, образование | да | да | 1983, ISO[35] | ||||||
Perl | Приложение, сценарии, обработка текста, Интернет | да | да | да | да | да | да | Нет | ||
PHP | На стороне сервера, веб-приложение, веб | да | да[36] | да[37] | да | да | Стандарт «де-факто» через спецификацию языка и запросы комментариев (RFC) | |||
PL / I | Заявление | да | да | да | 1969, ECMA-50 (1976) | |||||
Плюс | Приложение, разработка системы | да | да | Нет | ||||||
PostScript | Графика, описание страницы | да | да | Да, как в Справочном руководстве по PostScript[38] | ||||||
PowerShell | Администрирование, приложение, общие, скрипты | да | да | да | да | да | трубопровод | Нет | ||
Пролог | Приложение, искусственный интеллект | да | да | да | логика, декларативная | 1995, ISO / IEC 13211-1: 1995, TC1 2007, TC2 2012, TC3 2017 | ||||
PureBasic | Заявление | да | Нет | |||||||
Python | Приложение, общее, Интернет, сценарии, искусственный интеллект, научные вычисления | да | да | да | да | да | да | да | аспектно-ориентированный | Стандарт "де-факто" через предложения по расширению Python (PEP) |
р | Приложение, статистика | да | да | да | да | да | Нет | |||
Ракетка | Образование, общие, сценарии | да | да | да | да | модульный, логический, мета | Нет | |||
Раку | Скрипты, обработка текста, клей | да | да | да | да | да | да | аспектно-ориентированный, массив, ленивое вычисление, множественная отправка, метапрограммирование | да | |
REALbasic | Заявление | да | Неизвестно | |||||||
Ребол | Распространено | да | да | да | да | да | да | диалект | Нет | |
REXX | Сценарии | да | Да (NetRexx и Объект REXX диалекты) | Нет | да | Нет | Нет | 1996 (ANSI X3.274-1996) | ||
РПГ | Приложение, система | да | да | Нет | ||||||
Рубин | Приложение, сценарии, веб | да | да | да | да | аспектно-ориентированный | 2011 (JIS X 3017), 2012 (ISO / IEC 30170) | |||
Ржавчина | Приложение, на стороне сервера, система, Интернет | да | да[39] | да | да | да | да | одновременный | Нет | |
S | Приложение, статистика | да | да | да | да | Нет | ||||
Сленг | Приложение, числовое, скриптовое | да | да | Нет | ||||||
Scala | Приложение, распределенное, веб | да | да | да | да | да | да | Де-факто стандарт через спецификацию языка Scala (SLS) | ||
Схема | Образование, общее | да | расширяемый синтаксис | 1998, R6RS | ||||||
Семя7 | Приложение, общие, сценарии, веб | да | да | да | да | многопарадигмальный, расширяемый, структурированный | Нет | |||
Симула | Образование, общее | да | да | да | дискретное моделирование событий, многопоточный (квазипараллельное) выполнение программы | 1968 | ||||
Маленький Базовый | Приложение, обучение, игры | да | да | компонентно-ориентированный | Нет | |||||
Болтовня | Приложение, общие, бизнес, искусственный интеллект, образование, Интернет | да | да | да | да | да | да | параллельный, декларативный | 1998, [ANSI | |
СНОБОЛ | Обработка текста | Неизвестно | ||||||||
Стандартный ML | Заявление | да | да | да | 1997, SML '97[40] | |||||
Быстрый | Применение, общее | да | да | да | да | да | да | да | параллельный, декларативный, ориентированный на протокол | Нет |
Tcl | Приложение, сценарии, веб | да | да | да | да | да | да | Нет | ||
Visual Basic | Приложения, RAD, образование, бизнес, общие (включая VBA), автоматизация делопроизводства | да | да | да | да | компонентно-ориентированный | Нет | |||
Visual Basic .NET | Приложение, RAD, образование, Интернет, бизнес, общие | да | да | да | да | да | да | да | структурированный, параллельный | Нет |
Visual FoxPro | Заявление | да | ориентированный на данные, логика | Нет | ||||||
Визуальный пролог | Заявление | да | да | да | да | декларативный, логический | Нет | |||
Язык Wolfram Language | Символический язык | да | да | да | да | да | да | да | логика, распределенная | Нет |
XL | да | да | концептуальное программирование | Нет | ||||||
Xojo | Приложение, RAD, общее, веб | да | да | да | да | да | Нет | |||
XPath /XQuery | Базы данных, обработка данных, скрипты | да | ориентированный на дерево | W3C 1999 XPath 1, 2010 XQuery 1, 2014 XPath / XQuery 3.0 | ||||||
Zsh | Ракушка, сценарии | да | да | загружаемые модули | Нет |
Системы типов
Отказоустойчивый ввод-вывод и системные вызовы
Большинство языков программирования будут печатать сообщение об ошибке или бросить исключение если ввод, вывод операция или другое системный вызов (например., chmod, убийство ) терпит неудачу, если программист явно не предусмотрел другую обработку этих событий. Таким образом, эти языки безопасно потерпеть неудачу в этом отношении.
Некоторые (в основном старые) языки требуют, чтобы программист явно добавлял проверки на такие ошибки. Психологически разные когнитивные предубеждения (например., предвзятость оптимизма ) могут затронуть как новичков, так и экспертов, и эти упущения могут привести к ошибочное поведение.
Язык | Отказоустойчивый ввод / вывод |
---|---|
1С: Предприятие | да |
Ада | Да (исключения) |
АЛГОЛ | Да (исключения или возвращаемое значение в зависимости от функции) |
AutoHotkey | Нет (глобальный ErrorLevel должен быть явно проверен) |
Баш | Необязательный[FSIO 1] |
Балерина | да |
братан | да |
C | Нет[FSIO 2] |
C ++ | Немного (STL iostreams выбрасывать в случае сбоя, но API C вроде stdio или же POSIX не)[FSIO 2] |
C # | да |
КОБОЛ | Нет |
Common Lisp | Да (система «условия и перезапуски») |
Карри | да |
D | Да (бросая при неудаче) [FSIO 3] |
Эйфель | Нет - это действительно зависит от библиотеки и не определяется языком |
Erlang | да |
Фортран | да |
GLBasic | Нет - обычно вызывает сбой программы |
Идти | Да (если результат явно не проигнорирован) |
Госу | да |
Гавань | да |
Haskell | да |
ISLISP | да |
Ява | да |
Юля | да |
Котлин | да |
LabVIEW | да |
Lua | Нет (некоторые функции не предупреждают и не генерируют исключения) |
Mathematica | да |
Object Pascal | Немного |
Цель-C | Да (исключения) |
OCaml | Да (исключения) |
OpenLisp | да |
Perl | Нет[FSIO 4] |
PHP | да |
Python | да |
Раку | да |
Ребол | да |
Rexx | Да (с необязательным сигнал на... обработка ловушек) |
РПГ | Нет |
Рубин | да |
Ржавчина | Да (если результат явно не проигнорирован) |
S | Неизвестно |
Болтовня | да |
Scala | да[FSIO 5] |
Стандартный ML | да[нужна цитата ] |
Swift ≥ 2,0 | Да (исключения) |
Tcl | да |
Visual Basic | да |
Visual Basic .NET | да |
Визуальный пролог | да |
Язык Wolfram Language | да |
Xojo | да |
XPath /XQuery | Да (исключения) |
Язык | Отказоустойчивый ввод / вывод |
- ^
set -e
разрешает завершение, если какой-либо не отмечен статус выхода отличен от нуля. - ^ а б gcc может предупредить о непроверенном errno. Более новые версии Visual Studio обычно выдают исключения при неудачном вводе-выводе при использовании stdio.
- ^ https://dlang.org/phobos/std_stdio.html
- ^ При желании можно включить значительную проверку ошибок, но по умолчанию Perl не является отказоустойчивым.
- ^ Scala работает на виртуальной машине Java, от которой наследует обработку исключений во время выполнения.
Выразительность
Язык | Соотношение заявлений[41] | Соотношение линий[42] |
---|---|---|
C | 1 | 1 |
C ++ | 2.5 | 1 |
Фортран | 2 | 0.8 |
Ява | 2.5 | 1.5 |
Perl | 6 | 6 |
Болтовня | 6 | 6.25 |
Python | 6 | 6.5 |
Литература по языкам программирования содержит множество неформальных заявлений об их родственниках. выразительная сила, но не существует основы для формализации таких утверждений или вывода интересных следствий.[43] В этой таблице представлены две меры выразительности из двух разных источников. Дополнительную меру выразительности в байтах GZip можно найти в игре Computer Language Benchmarks Game.[44]
Контрольные точки
Контрольные точки предназначены для имитации определенного типа нагрузки на компонент или систему. Компьютерные программы, используемые для сбора некоторых контрольных данных в этом разделе, возможно, не были полностью оптимизированы, и актуальность данных оспаривается. Самые точные тесты - это те, которые адаптированы к вашей конкретной ситуации. Контрольные данные других людей могут иметь некоторую ценность для других, но правильная интерпретация дает многим вызовы. Игра "Тесты компьютерного языка" сайт предостерегает от чрезмерного обобщения данных тестов, но содержит большое количество микро-тестов фрагментов кода, предоставленных читателями, с интерфейсом, который генерирует различные диаграммы и таблицы, сравнивающие конкретные языки программирования и типы тестов.[45]
Хронология конкретных языковых сравнений
- 1974 - Сравнительные заметки по Algol 68 и PL / I[46] - С.Х. Валентайн - ноябрь 1974 г.
- 1976 - Оценка АЛГОЛ 68, Веселый J3B, Паскаль, Симула 67, и ТАКПОЛ По сравнению с TINMAN - Требования к общему языку программирования высокого порядка.
- 1977 - Сравнение PASCAL и ALGOL 68[47] – Эндрю С. Таненбаум - июнь 1977 г.
- 1993 - Пять маленьких языков и как они выросли - БЛАЖЕНСТВО, Паскаль, АЛГОЛ 68, BCPL & C – Деннис М. Ричи - Апрель 1993 г.
- 2009 - В пути - ну давай - Насколько хорошо Google Идти выступить против языка программирования Brand X? - Дэвид Гивен - ноябрь 2009 г.
Смотрите также
Чтобы отобразить все страницы, подкатегории и изображения, нажмите «►»: |
---|
▼ Списки языков программирования (19 П) |
- Сравнение базовых инструкций языков программирования
- Сравнение языков программирования (синтаксис)
- Сравнение парадигм программирования
- Сравнение интегрированных сред разработки
- Сравнение многопарадигмальных языков программирования
- Измерение популярности языков программирования
- Индекс TIOBE
Рекомендации
- ^ По состоянию на май 2006 года Diarmuid Pigott's Энциклопедия компьютерных языков В архиве 2011-02-20 на Wayback Machine размещен в Университет Мердока, Австралия перечисляет 8512 компьютерных языков.
- ^ Справочное руководство по Ada, ISO / IEC 8652: 2005 (E) Ed. 3, 3.9 Типы с тегами и расширения типов
- ^ Справочное руководство по Ada, ISO / IEC 8652: 2005 (E) Ed. 3, Раздел 6: Подпрограммы
- ^ Справочное руководство по Ada, ISO / IEC 8652: 2005 (E) Ed. 3, Раздел 12: Стандартные единицы
- ^ Справочное руководство по Ada, ISO / IEC 8652: 2005 (E) Ed. 3, Раздел 9: Задачи и синхронизация
- ^ Справочное руководство по Ada, ISO / IEC 8652: 2005 (E) Ed. 3 Приложение E: Распределенные системы
- ^ «Вак.ру» (PDF). Архивировано из оригинал (PDF) на 2017-03-30. Получено 2008-08-09.
- ^ ISO 1538: 1984
- ^ «Вак.ру» (PDF). Архивировано из оригинал (PDF) на 2017-03-24. Получено 2008-08-09.
- ^ IEEE 694-1985
- ^ Объекты - определение и использование
- ^ "Спецификация языка балерины" (PDF). WSO2. 2018-05-01. Получено 2018-05-03.
- ^ POSIX.2, Shell и служебные программы, интерпретатор команд (IEEE Std 1003.2-1992.)
- ^ JSR 274
- ^ bell-labs.com
- ^ ANSI C89, ISO / IEC 9899: 1990, 1999, 2011, 2018
- ^ ISO / IEC 14882: 1998, 2003, 2011, 2014, 2017
- ^ Codeproject.com: функциональное программирование на C # 3.0 с использованием лямбда-выражения
- ^ ECMA-334; ISO / IEC 23270: 2006
- ^ Softvelocity.com
- ^ https://github.com/crystal-lang/crystal#why
- ^ https://github.com/crystal-lang/crystal#status
- ^ Основные механизмы языка Eiffel
- ^ Закрытие (компьютерное программирование)
- ^ ECMA-367; ИСО / МЭК 25436: 2006
- ^ Язык программирования Go (FAQ)
- ^ JSR 241
- ^ "Отчет о языке Haskell 2010". Получено 2011-12-07. Большинство реализаций Haskell расширяют стандарт Haskell 2010.
- ^ "M8 отсутствует!".
В качестве первого взгляда на будущие отражающие возможности Kotlin теперь вы можете получить доступ к свойствам как к первоклассным объектам в Kotlin.
- ^ POSIX.2, Shell и служебные программы, интерпретатор команд (IEEE Std 1003.2-1992.)
- ^ Ссылка "де-факто" - это Вторая жизнь реализация LSL. Halcyon (Inworldz) и Open Sims предлагают совместимые реализации с дополнительными функциями
- ^ Lua не имеет явного типа «объект» (для определения объекта используется более общий тип «таблицы»), но имеет явный синтаксис для вызова метода объекта.
- ^ Выпуски версий сопровождаются исчерпывающим справочным руководством по Lua, показывающим полный синтаксис и семантику; эталонная реализация и набор тестов. Они используются для генерации других Lua ВМ реализации и компиляторы, такие как Kahlua и LLVM-Lua.
- ^ ИСО / МЭК 10514-1: 1996
- ^ ISO 7185
- ^ Руководство по PHP, Глава 19. Классы и объекты (PHP 5),
- ^ Руководство по PHP, Глава 17. Функции
- ^ «Справочное руководство по языку PostScript» (PDF). Архивировано из оригинал (PDF) на 2017-02-18. Получено 2017-02-18.
- ^ Является ли Rust языком объектно-ориентированного программирования?
- ^ SMLNJ.org
- ^ Данные из Код завершен. п. 100. В Соотношение заявлений столбец "показывает типичные отношения исходных операторов на нескольких языках высокого уровня к эквивалентному коду в C. Более высокое соотношение означает, что каждая строка кода на указанном языке выполняет больше, чем каждая строка кода в C.
- ^ Отношение количества строк, выигранных каждым языком, к количеству, выигранному C при использовании Сравнить с особенность в Джон Маклоун (14 ноября 2012 г.). «Длина кода измерена на 14 языках». Архивировано из оригинал в 2012-11-19. C gcc использовался для C, C ++ g ++ использовался для C ++, FORTRAN G95 использовался для FORTRAN, Java JDK Server использовался для Java и Smalltalk GST использовался для Smalltalk.
- ^ Фелляйзен, Матиас. О выразительной силе языков программирования. ESOP '90 3-й Европейский симпозиум по программированию. CiteSeerX 10.1.1.51.4656.
- ^ "Как оцениваются программы | Игра" Тесты компьютерного языка ". Benchmarksgame-team.pages.debian.net/benchmarksgame. Получено 2018-05-29.
- ^ "The Ultimate Benchmark | Игра для тестирования компьютерного языка". Benchmarksgame-team.pages.debian.net/benchmarksgame. Получено 2018-05-29.
- ^ Валентин, С. Х. (ноябрь 1974 г.). «Сравнительные заметки по Algol 68 и PL / I». Компьютерный журнал. 17 (4): 325–331. Дои:10.1093 / comjnl / 17.4.325.
- ^ http://dare.ubvu.vu.nl/bitstream/1871/2609/1/11054.pdf
дальнейшее чтение
- Сеззар, Рукнет (1995). Руководство по языкам программирования: обзор и сравнение. ISBN 978-0-89006-812-0.