~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ F9785F6A8766532A84FA5C5EFC03DD4B__1716902340 ✰
Заголовок документа оригинал.:
✰ Comparison of programming languages - Wikipedia ✰
Заголовок документа перевод.:
✰ Сравнение языков программирования — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Comparison_of_programming_languages ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/f9/4b/f9785f6a8766532a84fa5c5efc03dd4b.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/f9/4b/f9785f6a8766532a84fa5c5efc03dd4b__translat.html ✰
Дата и время сохранения документа:
✰ 18.06.2024 00:46:30 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 28 May 2024, at 16:19 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Сравнение языков программирования — Википедия Jump to content

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

Из Википедии, бесплатной энциклопедии

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

Существуют тысячи языков программирования [1] и каждый год создаются новые. Лишь немногие языки становятся настолько популярными, что их используют несколько человек, но профессиональные программисты за свою карьеру могут использовать десятки языков.

не стандартизированы международным (или национальным) стандартом Большинство языков программирования, даже широко используемые, такие как Perl или Standard ML (несмотря на название), . Известные стандартизированные языки программирования включают ALGOL , C , C++ , JavaScript (под названием ECMAScript ), Smalltalk , Prolog , Common Lisp , Scheme ( стандарт IEEE ), ISLISP , Ada , Fortran , COBOL , SQL и XQuery .

Общее сравнение [ править ]

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

Типовые системы [ править ]

Отказоустойчивый ввод-вывод и системные вызовы [ править ]

Большинство языков программирования выводят сообщение об ошибке или выдают исключение , если операция ввода/вывода или другой системный вызов (например, chmod , kill ) терпят неудачу, если только программист явно не предусмотрел другую обработку этих событий. Таким образом, эти языки благополучно терпят неудачу в этом отношении .

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

Безопасный ввод-вывод — это функция 1С:Предприятия , Ada (исключения), ALGOL (исключения или возвращаемое значение в зависимости от функции), Ballerina , C# , Common Lisp (система «условия и перезапуск»), Curry , D (выдача при сбое). ), [44] Erlang , Fortran , Go (если результат явно не игнорируется), Gosu , Harbor , Haskell , ISLISP , Java , Julia , Kotlin , LabVIEW , Mathematica , Objective-C (исключения), OCaml (исключения), OpenLisp , PHP , Python , Raku , Rebol , Rexx (с дополнительным сигналом об обработке ловушек), Ring , Ruby , Rust (если результат явно не игнорируется), Scala , [45] Smalltalk , стандартный ML [ нужна цитата ] , Swift ≥ 2.0 (исключения), Tcl , Visual Basic , Visual Basic .NET , Visual Prolog , Wolfram Language , Xojo , XPath / XQuery (исключения) и Zeek .

Нет отказоустойчивого ввода-вывода : AutoHotkey (должен быть явно проверен глобальный уровень ErrorLevel), C , [46] COBOL , Eiffel (на самом деле это зависит от библиотеки и не определяется языком), GLBasic (обычно приводит к сбою программы), RPG , Lua (некоторые функции не предупреждают и не вызывают исключения) и Perl . [47]

Некоторая проверка ввода-вывода встроена в C++ ( потоки STL iostream выдаются в случае сбоя, но API C, такие как stdio или POSIX , этого не делают) [46] и Object Pascal в Bash [48] это необязательно.

Выразительность [ править ]

Язык Соотношение заявлений [49] Соотношение линий [50]
С 1 1
С++ 2.5 1
Фортран 2 0.8
Джава 2.5 1.5
Перл 6 6
Болтовня 6 6.25
Питон 6 6.5

Литература по языкам программирования содержит множество неформальных заявлений об их относительной выразительной силе , но не существует системы ни для формализации таких утверждений, ни для получения интересных последствий. [51] В этой таблице представлены два показателя выразительности из двух разных источников. Дополнительную меру выразительности в байтах GZip можно найти в игре Computer Language Benchmarks. [52]

Тесты [ править ]

Гистограмма времени для производства Мандельброта площадью 1600² [53] как сообщается в The Benchmarks Game [54]

Тесты производительности предназначены для имитации определенного типа рабочей нагрузки на компонент или систему. Компьютерные программы, использованные для сбора некоторых контрольных данных в этом разделе, возможно, не были полностью оптимизированы, и актуальность данных оспаривается. Наиболее точные тесты — это те, которые адаптированы к вашей конкретной ситуации. Сравнительные данные других людей могут иметь некоторую ценность для других, но правильная интерпретация создает множество проблем . Сайт Computer Language Benchmarks Game предостерегает от чрезмерного обобщения данных тестов, но содержит большое количество микротестов фрагментов кода, предоставленных читателями, с интерфейсом, который генерирует различные диаграммы и таблицы, сравнивающие конкретные языки программирования и типы тестов. [55]

Хронология конкретных языков сравнений

  • 1974 – Сравнительные заметки об Алголе 68 и PL/I. [56] - С.Х. Валентайн - ноябрь 1974 г.
  • 1976 – Оценка ALGOL 68 , JOVIAL J3B, Pascal , Simula 67 и TACPOL в сравнении с TINMAN – Требования к общему языку программирования высокого порядка.
  • 1977 – Сравнение ПАСКАЛЬ и АЛГОЛА 68. [57] Эндрю С. Таненбаум – июнь 1977 г.
  • 1993 – Пять маленьких языков и как они выросли – БЛИСС , Паскаль , АЛГОЛ 68 , BCPL & C Деннис М. Ричи – апрель 1993.
  • 2009 — On Go — ох, продолжайте — Насколько хорошо Go от Google сможет противостоять языку программирования Brand X? – Дэвид Гивен – ноябрь 2009 г.

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

Для отображения всех страниц, подкатегорий и изображений нажмите на кнопку «►»:

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

  1. Диармуида Пиготта, По состоянию на май 2006 года Энциклопедия компьютерных языков заархивированная 20 февраля 2011 г. в Wayback Machine , расположенном в Университете Мердока , Австралия, насчитывает 8512 компьютерных языков.
  2. ^ Справочное руководство Ada, ISO/IEC 8652:2005(E) Ed. 3 , 3.9 Типы с тегами и расширения типов
  3. ^ Справочное руководство Ada, ISO/IEC 8652:2005(E) Ed. 3 , Раздел 6: Подпрограммы
  4. ^ Справочное руководство Ada, ISO/IEC 8652:2005(E) Ed. 3 , Раздел 12: Общие единицы измерения
  5. ^ Справочное руководство Ada, ISO/IEC 8652:2005(E) Ed. 3 , Раздел 9: Задачи и синхронизация
  6. ^ Справочное руководство Ada, ISO/IEC 8652:2005(E) Ed. 3 Приложение E: Распределенные системы
  7. ^ «Вак.ру» (PDF) . Архивировано из оригинала (PDF) 30 марта 2017 г. Проверено 9 августа 2008 г.
  8. ^ ИСО 1538:1984.
  9. ^ «Вак.ру» (PDF) . Архивировано из оригинала (PDF) 24 марта 2017 г. Проверено 9 августа 2008 г.
  10. ^ IEEE 694-1985.
  11. ^ Объекты - Определение и использование
  12. ^ «Спецификация языка балерины» (PDF) . WSO2. 01.05.2018. Архивировано из оригинала (PDF) 4 мая 2018 г. Проверено 3 мая 2018 г.
  13. ^ Перейти обратно: а б с POSIX.2 , оболочка и утилиты, интерпретатор команд (IEEE Std 1003.2-1992.)
  14. ^ JSR 274
  15. ^ bell-labs.com
  16. ^ ANSI C89, ISO/IEC 9899: 1990, 1999, 2011, 2018.
  17. ^ ISO / IEC 14882: 1998, 2003, 2011, 2014, 2017, 2020.
  18. ^ Codeproject.com: Функциональное программирование на C# 3.0 с использованием лямбда-выражения.
  19. ^ ECMA-334; ИСО/МЭК 23270:2006
  20. ^ Softvelocity.com
  21. ^ «Кристалл» . Гитхаб . 2 ноября 2021 г.
  22. ^ «Кристалл Дженерик» . Crystal-lang.org . 13 апреля 2024 г.
  23. ^ «Параллелизм — Кристалл» . Crystal-lang.org . Проверено 2 апреля 2024 г.
  24. ^ Основные механизмы языка Эйфеля
  25. ^ Закрытие (компьютерное программирование)
  26. ^ ECMA-367; ИСО/МЭК 25436:2006
  27. ^ Язык программирования Go (FAQ)
  28. ^ JSR 241
  29. ^ «Отчет о языке Haskell 2010» . Проверено 7 декабря 2011 г. Большинство реализаций Haskell расширяют стандарт Haskell 2010.
  30. ^ «М8 отсутствует!» . 2 июля 2014 г. Впервые заглянув в будущие отражающие возможности Kotlin, вы теперь можете получать доступ к свойствам как к первоклассным объектам в Kotlin.
  31. ^ Halcyon (Inworldz) и Open Sims предлагают совместимые реализации с дополнительными функциями.
  32. ^ Lua не имеет явного типа «объекта» (для определения объекта используется более общий тип «таблица»), но имеет явный синтаксис для вызова метода объекта.
  33. ^ Выпуски версий сопровождаются полным справочным руководством Lua, показывающим полный синтаксис и семантику; эталонная реализация и набор тестов. Они используются для создания других реализаций и компиляторов Lua VM , таких как Kahlua и LLVM-Lua.
  34. ^ ИСО/МЭК 10514-1:1996.
  35. ^ ИСО 7185
  36. ^ Руководство по PHP , Глава 19. Классы и объекты (PHP 5) ,
  37. ^ Руководство по PHP , Глава 17. Функции
  38. ^ «Справочное руководство по языку PostScript» (PDF) . Архивировано из оригинала (PDF) 18 февраля 2017 г. Проверено 18 февраля 2017 г.
  39. ^ Является ли Rust объектно-ориентированным языком программирования?
  40. ^ Клабник, Стив; Николс, Кэрол. «Макросы» . Язык программирования Rust .
  41. ^ Р 3 РС, Р 4 РС, Р 5 РС, Р 6 РС, Р 7 RS маленькое издание
  42. ^ Р 0 РС, Р 1 РС, Р 2 РС
  43. ^ SMLNJ.org
  44. ^ «STD.stdio — Язык программирования D» .
  45. ^ Scala работает на виртуальной машине Java, от которой она наследует обработку исключений во время выполнения.
  46. ^ Перейти обратно: а б gcc может предупреждать о непроверенной ошибке errno . Более новые версии Visual Studio обычно выдают исключения при сбое ввода-вывода при использовании stdio .
  47. ^ Значительная проверка ошибок может быть включена опционально, но по умолчанию Perl не является отказоустойчивым.
  48. ^ set -e включает завершение, если какой-либо непроверенный статус выхода не равен нулю.
  49. ^ Данные из МакКоннелл, Стив (30 ноября 2009 г.). Код завершен . Майкрософт Пресс. п. 100. ИСБН  9780735636972 . Столбец « Соотношение операторов » «показывает типичное соотношение исходных операторов на нескольких языках высокого уровня к эквивалентному коду на C. Более высокое соотношение означает, что каждая строка кода на указанном языке выполняет больше, чем каждая строка кода на C.
  50. ^ Отношение количества строк, выигранных каждым языком, к числу, выигранному C при использовании функции «Сравнить с» на странице МакЛун, Джон (14 ноября 2012 г.). «Длина кода, измеренная на 14 языках» . Архивировано из оригинала 19 ноября 2012 г. C gcc использовался для C, C++ g++ использовался для C++, FORTRAN G95 использовался для FORTRAN, Java JDK Server использовался для Java, а Smalltalk GST использовался для Smalltalk.
  51. ^ Феллизен, Маттиас. О выразительной силе языков программирования . ESOP '90 3-й Европейский симпозиум по программированию. CiteSeerX   10.1.1.51.4656 .
  52. ^ «Как измеряются программы» . Игра «Бенчмарки компьютерного языка» . Проверено 29 мая 2018 г.
  53. ^ Мандельброт, Бенуа Б. (1982). Фрактальная геометрия природы (Пересмотренная ред.). Сан-Франциско. ISBN  0-7167-1186-9 . OCLC   7876824 . {{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  54. ^ «Мандельброт» . Игра «Бенчмарки компьютерного языка» . Проверено 9 июля 2021 г.
  55. ^ «Окончательный эталон» . Игра «Бенчмарки компьютерного языка» . Проверено 29 мая 2018 г.
  56. ^ Валентин, С.Х. (ноябрь 1974 г.). «Сравнительные замечания по Алголу 68 и PL/I» . Компьютерный журнал . 17 (4): 325–331. дои : 10.1093/comjnl/17.4.325 .
  57. ^ «Свободный университет Амстердама» (PDF) .

Дальнейшее чтение [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: F9785F6A8766532A84FA5C5EFC03DD4B__1716902340
URL1:https://en.wikipedia.org/wiki/Comparison_of_programming_languages
Заголовок, (Title) документа по адресу, URL1:
Comparison of programming languages - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)