Мови програмування використовуються для управління поведінкою машини (частіше комп'ютера). Як і людські мови, мови програмування відповідають правилам синтаксису і семантики. Зараз існують тисячі мов програмування і щороку створюються нові. З цих мов не всі стають популярними, деякі з них просто використовуються невеликою кількістю людей, але професійні програмісти можуть користуватися десятками мов у своїй кар'єрі.
Основна порівняльна таблиця
У таблиці порівнюється загальна і технічна інформація для вибору частіше використовуваних мов програмування. Увага! У цій таблиці можуть бути відсутні деякі відомості.
Мова | Передбачуване використання | Імперативне | Об'єктно-орієнтоване | Функційне | Процедурне | Узагальнене | Рефлективне | Подійно-орієнтоване | Інші парадигми | Стандартизована? |
---|---|---|---|---|---|---|---|---|---|---|
ActionScript 3.0 | Застосунки, клієнт-сервер, веб | X | X | X | 1996, ECMA | |||||
Ada | Застосунки, вбудовані системи, системи реального часу, системне програмування | X | X | X | X | паралельні,розподілені обчислення | 1983, 2005, 2012, ANSI, ISO, ГОСТ 27831-88 | |||
[en] | Предметно-орієнтована, символьні обчислення | X | X | X | Ні | |||||
[en] | Застосунки | X | Ні | |||||||
[en] | Застосунки | X | 1960, , ISO | |||||||
[en] | Застосунки | X | паралельні обчислення | 1968, , , | ||||||
[en] | Паралельні застосунки | X | пі-числення | Ні | ||||||
APL | Застосунки, обробка даних | масиво-орієнтоване, «мовчазне» програмування | 1989, ISO | |||||||
Мова асемблера | Загального призначення | X | Будь-яке, синтаксис зазвичай дуже специфічний, пов'язаний з цільовим процесором | Ні | ||||||
AutoHotkey | Автоматизація графічного інтерфейса, дуже специфічна для предметної області | X | Ні | |||||||
AutoIt | Автоматизація графічного інтерфейса, дуже специфічна для предметної області | X | X | X | Ні | |||||
BASIC | Застосунки, навчання | X | X | 1983, ANSI, ISO | ||||||
BeanShell | Застосунки, написання скриптів | X | X | X | X | In progress, JCP | ||||
[en] | Системне програмування | X | Ні | |||||||
[en] | Застосунки, ігри | X | X | X | Ні | |||||
Boo | Застосунки | Ні | ||||||||
Bro | Специфічна для предметної області, застосунки | X | X | Ні | ||||||
C | Застосунки, системне програмування, загального призначення, низькорівневі операції | X | X | 1989, ANSI C89, ISO C90, ISO C99, ISO C11 | ||||||
Застосунки, системне програмування | X | X | X | X | X | 1998, ISO/IEC 1998, ISO/IEC 2003, ISO/IEC 2011 | ||||
C# | Застосунки, RAD, бізнес-логіка, клієнтська сторона, загального призначення, серверна сторона, Web, роботи | X | X | X | X | X | X | структурне, конкурентне | 2000, ECMA, ISO | |
[en] | Загального призначення, бізнес-логіка, Web | X | X | X | Невідомий | |||||
[en] | Загального призначення | X | X | Ні | ||||||
Clojure | Загального призначення | X | конкурентне | Ні | ||||||
CLU | Загального призначення | X | X | X | X | Ні | ||||
COBOL | Застосунки, бізнес-логіка | X | X | X | ANSI X3.23 1968, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014 | |||||
[en] | Застосунки, бізнес-логіка, загального призначення, Web | X | X | X | X | X | Ні | |||
[en] (CFML) | Web | X | X | Ні | ||||||
Common Lisp | Загального призначення | X | X | X | X | X | 1994, ANSI | |||
Мова | Intended use | Імперативне | Об'єктно-орієнтоване | Функційне | Процедурне | Узагальнене | Рефлективне | Подійно-орієнтоване | Інші парадигми | Стандартизована? |
COMAL 80 | Навчання | X | X | Ні | ||||||
Crystal 1.0.0 | Навчання | X | X | X | Ні | |||||
Cython | Застосунки, загального призначення, обчислення | X | X | X | X | Аспектно-орієнтоване | Ні | |||
D | Застосунки, системне програмування | X | X | X | X | генеративне, конкурентне | Ні | |||
Dart | Застосунки, Web | X | X | структурне | Ні | |||||
Dylan | Застосунки | X | X | Ні | ||||||
Eiffel | Застосунки | X | X | X | 2005, ECMA, ISO | |||||
Erlang | Застосунки, розподілене, телеком | X | конкурентне, розподілене | Ні | ||||||
[en] | Застосунки. Оскільки інтерпретатор є спільним для коду системи та програми, система не є цільовим використанням, оскільки збої програми вплинуть на всю систему. | X | X | Ні | ||||||
[en] | стекова | Ні | ||||||||
[en] | X | Ні | ||||||||
F# | Застосунки | X | X | X | X | Ні | ||||
Forth | Загального призначення | X | стекове | 1994, ANSI | ||||||
Fortran | Застосунки, обчислення | X | X | X | X | 1966, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003, ISO/IEC 1539-1:2010 (2008) | ||||
FreeBASIC | Застосунки, обчислення | X | X | X | X | Ні | ||||
G2 | Застосунки, висновування, експертні системи | X | X | X | загальне графічне середовище розробки та виконання | Ні | ||||
Gambas | Застосунки | X | X | X | Ні | |||||
Game Maker Language | Застосунки, ігри | X | X | X | Ні | |||||
[en] | Застосунки, ігри | X | X | X | просте об'єктно-орієнтоване | Ні | ||||
Go | Застосунки, системне програмування | X | конкурентне | Ні | ||||||
[en] | Застосунки, загального призначення, написання скриптів, Web | X | X | X | X | Ні | ||||
Застосунки | X | логічне | Ні | |||||||
Groovy | Застосунки, загального призначення, написання скриптів, Web | X | X | X | Аспектно-орієнтоване | In progress, JCP | ||||
[en] | Застосунки, бізнес-логіка, обробка даних, загального призначення, Web | X | X | X | X | X | X | декларативне | Ні | |
Haskell | Застосунки | X | X | ліниві обчислення | 2010, Haskell 2010 | |||||
Haxe | Застосунки, загального призначення, Web | X | X | X | X | X | Ні | |||
[en] | Застосунки, RAD, загального призначення | X | X | слабко типізована | Невідомо | |||||
[en] | Застосунки, host-driven scripting | X | X | Ні | ||||||
Мова | Intended use | Імперативне | Об'єктно-орієнтоване | Функційне | Процедурне | Узагальнене | Рефлективне | Подійно-орієнтоване | Інші парадигми | Стандартизована? |
[en] | Загального призначення | X | X | X | X | 1997, ISO | ||||
J | Обробка даних | масиво-орієнтоване, комбінаторне, безточкове | Ні | |||||||
JADE | Застосунки, розподілене | X | X | Ні | ||||||
Java | Застосунки, бізнес-логіка, клієнтська сторона, загального призначення, серверна сторона, Web | X | X | X | X | конкурентне | De facto стандарт за Java Language Specification | |||
JavaScript | Клієнтська сторона, серверна сторона, Web | X | X | X | X | Прототипне | 1997, ECMA | |||
[en] | Дослідження | X | стекова | Ні | ||||||
K | Обробка даних, бізнес-логіка | масиво-орієнтоване, безточкове | Невідомо | |||||||
Kotlin | Застосунки, мобільні застосунки, серверна сторона, клієнтська сторона, Web (JavaScript, HTML, CSS) | X | X | X | X | |||||
LabVIEW (G) | Застосунки, промислове моделювання і автоматизація | програмування потоків даних, візуальне | Ні | |||||||
Lisp | Загального призначення | X | Невідомо | |||||||
[en] | Застосунки, RAD, загального призначення | X | X | слабко типізована | Ні | |||||
[en] | Штучний інтелект, застосунки | X | X | X | логічне | Ні | ||||
Lua | Застосунки, embedded scripting | X | X | X | X | X | Аспектно-орієнтоване | Ні | ||
Maple | Символьні обчислення, обчислення | X | X | X | X | розподілене | Ні | |||
Mathematica | Символьні обчислення | X | X | X | X | логічне, розподілене | Ні | |||
MATLAB | Дуже специфічна для предметної області, обчислення | X | X | X | Ні | |||||
[en] | Застосунки, системне програмування | X | X | 1996, ISO | ||||||
[en] | Застосунки | X | X | X | Ні | |||||
Oberon | Застосунки, системне програмування | X | X | Ні | ||||||
Object Pascal (Delphi) | Застосунки, загального призначення, мобільні застосунки, Web | X | X | X | X | X | X | структурне | Ні | |
Objective-C | Застосунки, загального призначення | X | X | X | конкурентне | Ні | ||||
Occam | Загального призначення | X | X | конкурентне, [en] | Ні | |||||
Opa | Веб-застосунки | X | X | X | розподілене | Ні | ||||
Oxygene | Застосунки | X | X | X | Ні | |||||
[en] | Застосунки, розподілені обчислення, навчання | X | X | X | конкурентне, логічне | Ні | ||||
Pascal | Застосунки, навчання | X | X | 1983, ISO | ||||||
Perl | Застосунки, написання скриптів, обробка текстів, Web | X | X | X | X | X | X | Ні | ||
PHP | Серверна сторона, веб-застосунки, Web | X | X | X | X | Ні | ||||
(PL/I) | Застосунки | X | X | X | 1969 | |||||
Мова | Intended use | Імперативне | Об'єктно-орієнтоване | Функційне | Процедурне | Узагальнене | [[[Рефлексія (програмування)|Рефлективне]] | Подійно-орієнтоване | Інші парадигми | Стандартизована? |
[en] | Застосунки, розробка систем | X | X | Ні | ||||||
Prolog | Застосунки, штучний інтелект | логічне | 1995, ISO | |||||||
[en] | Застосунки | X | Ні | |||||||
Python | Застосунки, загального призначення, Web, написання скриптів, ШІ, наукові обчислення | X | X | X | X | Аспектно-орієнтоване | Ні | |||
Racket | Навчання, загального призначення, написання скриптів | X | X | X | X | модульне, логічне, метапрограмування | Ні | |||
[en] | Застосунки | X | Невідомо | |||||||
REBOL | розподілене | X | X | X | [en] | Ні | ||||
IBM RPG | Застосунки, системне програмування | X | X | Ні | ||||||
Ruby | Застосунки, написання скриптів, Web | X | X | X | X | Аспектно-орієнтоване | 2011(JIS X 3017), 2012(ISO/IEC 30170) | |||
Rust | Застосунки, системне програмування | X | X | X | X | X | конкурентне | Ні | ||
S | Застосунки, статистика | X | X | X | X | Ні | ||||
[en] | Застосунки, обчислення, написання скриптів | X | X | Ні | ||||||
Scala | Застосунки, розподілене, Web | X | X | X | X | X | X | De facto стандарт via Scala Language Specification (SLS) | ||
Scheme | Навчання, загального призначення | X | 1998, R6RS | |||||||
[en] | Застосунки, загального призначення, написання скриптів, Web | X | X | X | X | багатопарадигмальне, розширюване, структурне | Ні | |||
Simula | Навчання, загального призначення | X | X | X | Дискретно-подійне моделювання, багатопоточне (квазіпаралельне) виконання програм | 1968 | ||||
Small Basic | Застосунки, навчання, ігри | X | X | компонентно-орієнтоване | Ні | |||||
Smalltalk | Застосунки, навчання | X | X | X | конкурентне, декларативне | 1998, ANSI | ||||
SNOBOL | Обробка текстів | Невідомо | ||||||||
Standard ML | Застосунки | X | X | X | 1997, SML '97 | |||||
Swift | Застосунки, загального призначення | X | X | X | X | конкурентне | Ні | |||
Tcl | Застосунки, написання скриптів, Web | X | X | X | X | Ні | ||||
Visual Basic | Застосунки, RAD, навчання, бізнес-логіка, загального призначення, (включно з VBA), автоматизація офісних застосунків | X | X | X | компонентно-орієнтоване | Ні | ||||
Visual Basic .NET | Застосунки, RAD, навчання, Web, бізнес-логіка, загального призначення | X | X | X | X | X | Ні | |||
[en] | Застосунки | X | дата-центричне, логічне | Ні | ||||||
[en] | Застосунки | X | X | X | X | декларативне, логічне | Ні | |||
Windows PowerShell | Системне адміністрування, скрипти | X | X | X | X | конвеєрне | Ні | |||
[en] | X | X | [en] | Ні | ||||||
[en] | Застосунки, RAD, загального призначення, Web | X | X | X | X | X | Ні | |||
Мова | Intended use | Імперативне | Об'єктно-орієнтоване | Функційне | Процедурне | Узагальнене | Рефлективне | Подійно-орієнтоване | Інші парадигми | Стандартизована? |
Типи систем
Короткі визначення
Номінальна система типів означає, що сумісність типізації та/або еквівалентність вирішується на основі очевидних оголошень та імен.
Структурна система типів оначає, що сумісність типізації та/або еквівалентність вирішується на основі визначення і характеристики типів.
Перевірка типів визначає, чи будуть перевіряються типи, як і коли.
Статична перевірка означає, що помилки типу повідомляються на основі тексту програми (вихідного коду). Динамічна перевірка означає, що помилки типу повідомляються на основі динаміки чи іншій програмі (під час виконання) поведінки.
Мова | Типобезпечність | Приведення типів | Сумісність та еквівалентність типів | Перевірка типів |
---|---|---|---|---|
ActionScript 3.0 | safe | неявне з можливим явним | Статична | |
Ada | safe | явне | номінальна | Статична |
[en] | unsafe | неявне | Статична | |
[en] | safe | явне | Статична | |
[en] | safe | явне | Статична | |
[en] | safe | явне | структурна | Статична & [en] |
APL | safe | Динамічна | ||
AutoHotkey | безтипова | n/a | n/a | n/a |
[en] | safe | явне | номінальна | Статична |
BASIC | safe | явне | номінальна | Статична |
[en] | typeless | n/a | n/a | n/a |
BeanShell | safe | номінальна | Динамічна | |
Boo | safe | неявне з можливим явним | Статична з опціональною динамічною | |
Bro | safe | неявне з можливим явним | номінальна | Статична |
C | unsafe | явне | номінальна | Статична |
((ISO/IEC 14882)) | unsafe | явне | номінальна | Статична |
C# | unsafe | неявне з можливим явним | номінальна | Статична |
[en] | safe | неявне | Статична | |
Clojure | safe | неявне з можливим явним | Динамічна | |
COBOL | safe | явне | номінальна | Статична |
ColdFusion (CFML) | safe | неявне | Динамічна | |
Common Lisp | safe | неявне з можливим явним | Динамічна | |
[en] | safe | номінальна | ||
Cython | safe | неявне з можливим явним | номінальна (розширені типи) і структурна (Python) | Динамічна з опціональною статичною |
D | unsafe | явне | номінальна | Статична |
Dylan | safe | Динамічна | ||
safe | неявне | Динамічна | ||
Eiffel | safe | номінальна | Статична | |
Erlang | safe | неявне | Динамічна | |
[en] | safe | явне, з неявним для об'єктів | номінальна | Статична, динамічна для об'єктів |
F# | safe | неявне | номінальна | Статична |
safe | неявне | структурна | Динамічна | |
Forth | typeless | n/a | n/a | n/a |
Fortran | safe | явне | номінальна | Статична |
Gambas | safe | явне | номінальна | |
[en] | safe | явне. Неявні оголошення можливі у налаштуваннях проєкта | номінальна | Статична |
Go | safe | неявне з можливим явним | структурна | Статична |
[en] | safe | частково неявне (локальне приведення типів) | номінальна (subclassing) і структурна (структурна) | Статична |
Groovy | safe | неявне з можливим явним | Динамічна з опціональною статичною | |
[en] | safe | неявне з можливим явним | Динамічна | |
Haskell | safe | неявне з можливим явним | структурна | Статична |
Haxe | safe | неявне з можливим явним | номінальна (subclassing) і структурна (структурна) | Статична з опціональною динамічною |
[en] | safe | неявне | Динамічна | |
[en] | safe | Динамічна | ||
J | safe | Динамічна | ||
Java | safe | явне | номінальна | Статична |
JavaScript | safe | неявне | структурна | Динамічна |
[en] | safe | Динамічна | ||
Kotlin | safe | частково неявне (локальне приведення типів) | номінальна | Статична |
LabVIEW | safe | |||
Lua | safe | неявне | Динамічна | |
Maple | safe | Динамічна | ||
Mathematica | safe | Динамічна | ||
MATLAB M-code | safe | Динамічна | ||
[en] | unsafe | явне | номінальна | Статична |
[en] | unsafe | явне | структурна | Статична |
Oberon | safe | явне | номінальна | Статична і частково динамічна |
Objective-C | safe | явне | номінальна | Динамічна з опціональною статичною |
OCaml | safe | неявне з можливим явним | структурна | Статична |
Object Pascal (Delphi) | safe | явне | номінальна | Статична |
Opa | safe | неявне з можливим явним | структурна | Статична |
Oxygene | unsafe | неявне | Статична | |
[en] | safe | неявне | структурна | Динамічна |
Pascal | unsafe | явне | номінальна | Статична |
Perl 5 | неявне | Динамічна | ||
Perl 6 | частково неявне | Динамічна з опціональною статичною | ||
PHP | неявне | Динамічна | ||
[en] | safe | явне | структурна | Статична, динамічна (опціонально) |
Prolog | Динамічна | |||
[en] | Динамічна | |||
Python | safe | неявне | структурна | Динамічна |
REBOL | safe | неявне | Динамічна | |
IBM RPG | unsafe | Статична | ||
Ruby | safe | неявне | структурна | Динамічна |
Rust | safe | неявне з можливим явним | Статична з опціональною динамічною | |
S | Динамічна | |||
[en] | safe | неявне | Динамічна | |
Scala | safe | частково неявне (локальне приведення типів) | номінальна (subclassing) і структурна (структурна) | Статична |
Scheme | safe | неявне | Динамічна (прихована) | |
[en] | safe | явне | номінальна | Статична |
Simula | safe | Статична | ||
Smalltalk | safe | неявне | Динамічна | |
Stіard ML | safe | неявне з можливим явним | структурна | Статична |
Tcl | Динамічна | |||
Visual Basic | safe | неявне з можливим явним | номінальна | Статична |
Visual Basic .NET | unsafe | явне | Статична | |
[en] | safe | частково неявне | номінальна | Статична |
Windows PowerShell | safe | неявне | Динамічна | |
[en] | safe | номінальна | Статична | |
[en] | safe | явне | номінальна | Статична |
- Unsafe operations are well isolated by a "Unchecked_" prefix.
- with optional dynamic type casting (see dynamic cast)
- It is almost safe, unsafe features are not commonly used.
- with optional dynamic type (see [en])
- Optionally, typing can be explicitly implied by the first letter of the identifier (known as implicit typing within the Fortran community).
- dynamic checking of type extensions i.e. inherited types
- explicit for static types
- optional for formal and virtual procedures
Відгук системи
Більшість мов програмування виводять повідомлення про помилки та/або винятки якщо операція не виконана. Нижче наведені мови виводять ці повідомлення.
Мова | Failsafe I/O |
---|---|
Ada | Так (винятки) |
ALGOL | Так (винятки або повернуті значення залежно від функції) |
AutoHotkey | Ні (має бути явно перевірена глобальна змінна ErrorLevel) |
Bro | Так |
C | Ні |
Ні | |
C# | Так |
COBOL | Ні |
Common Lisp | Так |
D | Так[] |
Eiffel | Ні – залежить від бібліотеки і не визначено самою мовою |
Erlang | Так |
Так | |
Fortran | Так |
[en] | Ні – у загальному випадку програма аварійно завершується |
Go | Ні |
[en] | Так |
[en] | Так |
Haskell | Так |
[en] | Так |
Java | Так |
Kotlin | Так |
LabVIEW | Так |
Lua | Ні (деякі функції не повертають попереджень чи винятків) |
Mathematica | Так |
Object Pascal (Delphi) | Деякі |
Objective-C | Так (exceptions) |
OCaml | Так (exceptions) |
Perl | Ні |
PHP | Так |
Python | Так |
REBOL | Так |
Ruby | Так |
Rust | Так |
S | Невідомий |
Scala | Так |
Standard ML | Так[] |
Tcl | Так |
Visual Basic | Так |
[en] | Так |
[en] | Так |
Language | Failsafe I/O |
- gcc can warn on unchecked error status. Newer versions of Visual Studio usually throw exceptions on failed I/O when using stdio.
- g++ can warn on unchecked error status. Newer versions of Visual Studio usually throw exceptions on failed I/O when using stdio.
- Considerable error checking can be enabled optionally, but by default Perl is not failsafe.
Посилання
- 99-bottles-of-beer.net — one program in over a thousand variations and multiple languages.
- The speed, size and dependability of programming languages — charts and narrative based on The Computer Language Benchmarks Game data.
- Shapes: Source Code Size and Run Time - charts based on current Benchmarks Game data.
- Comparison of syntaxes with sample codes.
- Syntax Across Languages
- Scriptometer scores — multiple comparisons of 26 programming languages.
- PLEAC — Programming Language Examples Alike Cookbook.
- OHLOH Language Statistics — gives an indication of the popularity of programming languages in open-source projects.
- History of Programming Language Statements — history and comparison of programming languages.
- Top 20 Most Popular Programming Languages of 2017 - Research of Most Popular Programming Languages.
- Best Programming Languages to Learn in 2022 - Research of the most promising programming languages to learn.
Примітки
- Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms
- Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units
- Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization
- Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems
- Vak.ru
- ISO 1538:1984
- Vak.ru
- JSR 274
- . Архів оригіналу за 28 березня 2015. Процитовано 25 червня 2014.
- ANSI C89, ISO/IEC 9899:1990, 1999, 2011
- ISO/IEC 14882:1998, 2003, 2011
- Codeproject.com: Functional Programming in C# 3.0 using Lambda Expression
- ECMA-334; ISO/IEC 23270:2006
- Softvelocity.com
- ECMA-367; ISO/IEC 25436:2006
- JSR 241
- The Haskell 2010 Language Report. Процитовано 7 грудня 2011. Most Haskell implementations extend the Haskell 2010 standard.
- Lua doesn't have explicit "object" type (more general type of "table" is used for object definition), but does have explicit syntax for object method calling
- Version releases are accompanied with a definitive Lua Reference Manual showing full syntax and semantics; a reference implementation, and a test suite. These are used to generate other Lua VM implementations and compilers such as and .
- ISO/IEC 10514-1:1996
- ISO 7185
- PHP Manual, Chapter 19. Classes and Objects (PHP 5),
- PHP Manual, Chapter 17. Functions
- SMLNJ.org
- The Go Programming Language Specification
- Sheng Liang, Gilad Bracha. Dynamic class loading in the Java virtual machine. Volume 33, Issue 10 of ACM SIGPLAN Notices, October 1998.
- Developer.apple.com
- Scala runs on the Java Virtual Machine from which it inherits the runtime exception handling.
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina Mova znachennya Movi programuvannya vikoristovuyutsya dlya upravlinnya povedinkoyu mashini chastishe komp yutera Yak i lyudski movi movi programuvannya vidpovidayut pravilam sintaksisu i semantiki Zaraz isnuyut tisyachi mov programuvannya i shoroku stvoryuyutsya novi Z cih mov ne vsi stayut populyarnimi deyaki z nih prosto vikoristovuyutsya nevelikoyu kilkistyu lyudej ale profesijni programisti mozhut koristuvatisya desyatkami mov u svoyij kar yeri Osnovna porivnyalna tablicyaU tablici porivnyuyetsya zagalna i tehnichna informaciya dlya viboru chastishe vikoristovuvanih mov programuvannya Uvaga U cij tablici mozhut buti vidsutni deyaki vidomosti Mova Peredbachuvane vikoristannya Imperativne Ob yektno oriyentovane Funkcijne Procedurne Uzagalnene Reflektivne Podijno oriyentovane Inshi paradigmi Standartizovana ActionScript 3 0 Zastosunki kliyent server veb X X X 1996 ECMAAda Zastosunki vbudovani sistemi sistemi realnogo chasu sistemne programuvannya X X X X paralelni rozpodileni obchislennya 1983 2005 2012 ANSI ISO GOST 27831 88 en Predmetno oriyentovana simvolni obchislennya X X X Ni en Zastosunki X Ni en Zastosunki X 1960 ISO en Zastosunki X paralelni obchislennya 1968 en Paralelni zastosunki X pi chislennya NiAPL Zastosunki obrobka danih masivo oriyentovane movchazne programuvannya 1989 ISOMova asemblera Zagalnogo priznachennya X Bud yake sintaksis zazvichaj duzhe specifichnij pov yazanij z cilovim procesorom NiAutoHotkey Avtomatizaciya grafichnogo interfejsa duzhe specifichna dlya predmetnoyi oblasti X NiAutoIt Avtomatizaciya grafichnogo interfejsa duzhe specifichna dlya predmetnoyi oblasti X X X NiBASIC Zastosunki navchannya X X 1983 ANSI ISOBeanShell Zastosunki napisannya skriptiv X X X X In progress JCP en Sistemne programuvannya X Ni en Zastosunki igri X X X NiBoo Zastosunki NiBro Specifichna dlya predmetnoyi oblasti zastosunki X X NiC Zastosunki sistemne programuvannya zagalnogo priznachennya nizkorivnevi operaciyi X X 1989 ANSI C89 ISO C90 ISO C99 ISO C11C Zastosunki sistemne programuvannya X X X X X 1998 ISO IEC 1998 ISO IEC 2003 ISO IEC 2011C Zastosunki RAD biznes logika kliyentska storona zagalnogo priznachennya serverna storona Web roboti X X X X X X strukturne konkurentne 2000 ECMA ISO en Zagalnogo priznachennya biznes logika Web X X X Nevidomij en Zagalnogo priznachennya X X NiClojure Zagalnogo priznachennya X konkurentne NiCLU Zagalnogo priznachennya X X X X NiCOBOL Zastosunki biznes logika X X X ANSI X3 23 1968 1974 1985 ISO IEC 1989 1985 2002 2014 en Zastosunki biznes logika zagalnogo priznachennya Web X X X X X Ni en CFML Web X X NiCommon Lisp Zagalnogo priznachennya X X X X X 1994 ANSIMova Intended use Imperativne Ob yektno oriyentovane Funkcijne Procedurne Uzagalnene Reflektivne Podijno oriyentovane Inshi paradigmi Standartizovana COMAL 80 Navchannya X X NiCrystal 1 0 0 Navchannya X X X NiCython Zastosunki zagalnogo priznachennya obchislennya X X X X Aspektno oriyentovane NiD Zastosunki sistemne programuvannya X X X X generativne konkurentne NiDart Zastosunki Web X X strukturne NiDylan Zastosunki X X NiEiffel Zastosunki X X X 2005 ECMA ISOErlang Zastosunki rozpodilene telekom X konkurentne rozpodilene Ni en Zastosunki Oskilki interpretator ye spilnim dlya kodu sistemi ta programi sistema ne ye cilovim vikoristannyam oskilki zboyi programi vplinut na vsyu sistemu X X Ni en stekova Ni en X NiF Zastosunki X X X X NiForth Zagalnogo priznachennya X stekove 1994 ANSIFortran Zastosunki obchislennya X X X X 1966 ANSI 66 ANSI 77 MIL STD 1753 ISO 90 ISO 95 ISO 2003 ISO IEC 1539 1 2010 2008 FreeBASIC Zastosunki obchislennya X X X X NiG2 Zastosunki visnovuvannya ekspertni sistemi X X X zagalne grafichne seredovishe rozrobki ta vikonannya NiGambas Zastosunki X X X NiGame Maker Language Zastosunki igri X X X Ni en Zastosunki igri X X X proste ob yektno oriyentovane NiGo Zastosunki sistemne programuvannya X konkurentne Ni en Zastosunki zagalnogo priznachennya napisannya skriptiv Web X X X X NiZastosunki X logichne NiGroovy Zastosunki zagalnogo priznachennya napisannya skriptiv Web X X X Aspektno oriyentovane In progress JCP en Zastosunki biznes logika obrobka danih zagalnogo priznachennya Web X X X X X X deklarativne NiHaskell Zastosunki X X linivi obchislennya 2010 Haskell 2010Haxe Zastosunki zagalnogo priznachennya Web X X X X X Ni en Zastosunki RAD zagalnogo priznachennya X X slabko tipizovana Nevidomo en Zastosunki host driven scripting X X NiMova Intended use Imperativne Ob yektno oriyentovane Funkcijne Procedurne Uzagalnene Reflektivne Podijno oriyentovane Inshi paradigmi Standartizovana en Zagalnogo priznachennya X X X X 1997 ISOJ Obrobka danih masivo oriyentovane kombinatorne beztochkove NiJADE Zastosunki rozpodilene X X NiJava Zastosunki biznes logika kliyentska storona zagalnogo priznachennya serverna storona Web X X X X konkurentne De facto standart za Java Language SpecificationJavaScript Kliyentska storona serverna storona Web X X X X Prototipne 1997 ECMA en Doslidzhennya X stekova NiK Obrobka danih biznes logika masivo oriyentovane beztochkove NevidomoKotlin Zastosunki mobilni zastosunki serverna storona kliyentska storona Web JavaScript HTML CSS X X X XLabVIEW G Zastosunki promislove modelyuvannya i avtomatizaciya programuvannya potokiv danih vizualne NiLisp Zagalnogo priznachennya X Nevidomo en Zastosunki RAD zagalnogo priznachennya X X slabko tipizovana Ni en Shtuchnij intelekt zastosunki X X X logichne NiLua Zastosunki embedded scripting X X X X X Aspektno oriyentovane NiMaple Simvolni obchislennya obchislennya X X X X rozpodilene NiMathematica Simvolni obchislennya X X X X logichne rozpodilene NiMATLAB Duzhe specifichna dlya predmetnoyi oblasti obchislennya X X X Ni en Zastosunki sistemne programuvannya X X 1996 ISO en Zastosunki X X X NiOberon Zastosunki sistemne programuvannya X X NiObject Pascal Delphi Zastosunki zagalnogo priznachennya mobilni zastosunki Web X X X X X X strukturne NiObjective C Zastosunki zagalnogo priznachennya X X X konkurentne NiOccam Zagalnogo priznachennya X X konkurentne en NiOpa Veb zastosunki X X X rozpodilene NiOxygene Zastosunki X X X Ni en Zastosunki rozpodileni obchislennya navchannya X X X konkurentne logichne NiPascal Zastosunki navchannya X X 1983 ISOPerl Zastosunki napisannya skriptiv obrobka tekstiv Web X X X X X X NiPHP Serverna storona veb zastosunki Web X X X X NiPL I Zastosunki X X X 1969Mova Intended use Imperativne Ob yektno oriyentovane Funkcijne Procedurne Uzagalnene Refleksiya programuvannya Reflektivne Podijno oriyentovane Inshi paradigmi Standartizovana en Zastosunki rozrobka sistem X X NiProlog Zastosunki shtuchnij intelekt logichne 1995 ISO en Zastosunki X NiPython Zastosunki zagalnogo priznachennya Web napisannya skriptiv ShI naukovi obchislennya X X X X Aspektno oriyentovane NiRacket Navchannya zagalnogo priznachennya napisannya skriptiv X X X X modulne logichne metaprogramuvannya Ni en Zastosunki X NevidomoREBOL rozpodilene X X X en NiIBM RPG Zastosunki sistemne programuvannya X X NiRuby Zastosunki napisannya skriptiv Web X X X X Aspektno oriyentovane 2011 JIS X 3017 2012 ISO IEC 30170 Rust Zastosunki sistemne programuvannya X X X X X konkurentne NiS Zastosunki statistika X X X X Ni en Zastosunki obchislennya napisannya skriptiv X X NiScala Zastosunki rozpodilene Web X X X X X X De facto standart via Scala Language Specification SLS Scheme Navchannya zagalnogo priznachennya X 1998 R6RS en Zastosunki zagalnogo priznachennya napisannya skriptiv Web X X X X bagatoparadigmalne rozshiryuvane strukturne NiSimula Navchannya zagalnogo priznachennya X X X Diskretno podijne modelyuvannya bagatopotochne kvaziparalelne vikonannya program 1968Small Basic Zastosunki navchannya igri X X komponentno oriyentovane NiSmalltalk Zastosunki navchannya X X X konkurentne deklarativne 1998 ANSISNOBOL Obrobka tekstiv NevidomoStandard ML Zastosunki X X X 1997 SML 97Swift Zastosunki zagalnogo priznachennya X X X X konkurentne NiTcl Zastosunki napisannya skriptiv Web X X X X NiVisual Basic Zastosunki RAD navchannya biznes logika zagalnogo priznachennya vklyuchno z VBA avtomatizaciya ofisnih zastosunkiv X X X komponentno oriyentovane NiVisual Basic NET Zastosunki RAD navchannya Web biznes logika zagalnogo priznachennya X X X X X Ni en Zastosunki X data centrichne logichne Ni en Zastosunki X X X X deklarativne logichne NiWindows PowerShell Sistemne administruvannya skripti X X X X konveyerne Ni en X X en Ni en Zastosunki RAD zagalnogo priznachennya Web X X X X X NiMova Intended use Imperativne Ob yektno oriyentovane Funkcijne Procedurne Uzagalnene Reflektivne Podijno oriyentovane Inshi paradigmi Standartizovana Tipi sistemKorotki viznachennya Nominalna sistema tipiv oznachaye sho sumisnist tipizaciyi ta abo ekvivalentnist virishuyetsya na osnovi ochevidnih ogoloshen ta imen Strukturna sistema tipiv onachaye sho sumisnist tipizaciyi ta abo ekvivalentnist virishuyetsya na osnovi viznachennya i harakteristiki tipiv Perevirka tipiv viznachaye chi budut pereviryayutsya tipi yak i koli Statichna perevirka oznachaye sho pomilki tipu povidomlyayutsya na osnovi tekstu programi vihidnogo kodu Dinamichna perevirka oznachaye sho pomilki tipu povidomlyayutsya na osnovi dinamiki chi inshij programi pid chas vikonannya povedinki Mova Tipobezpechnist Privedennya tipiv Sumisnist ta ekvivalentnist tipiv Perevirka tipivActionScript 3 0 safe neyavne z mozhlivim yavnim StatichnaAda safe yavne nominalna Statichna en unsafe neyavne Statichna en safe yavne Statichna en safe yavne Statichna en safe yavne strukturna Statichna amp en APL safe DinamichnaAutoHotkey beztipova n a n a n a en safe yavne nominalna StatichnaBASIC safe yavne nominalna Statichna en typeless n a n a n aBeanShell safe nominalna DinamichnaBoo safe neyavne z mozhlivim yavnim Statichna z opcionalnoyu dinamichnoyuBro safe neyavne z mozhlivim yavnim nominalna StatichnaC unsafe yavne nominalna StatichnaC ISO IEC 14882 unsafe yavne nominalna StatichnaC unsafe neyavne z mozhlivim yavnim nominalna Statichna en safe neyavne StatichnaClojure safe neyavne z mozhlivim yavnim DinamichnaCOBOL safe yavne nominalna StatichnaColdFusion CFML safe neyavne DinamichnaCommon Lisp safe neyavne z mozhlivim yavnim Dinamichna en safe nominalnaCython safe neyavne z mozhlivim yavnim nominalna rozshireni tipi i strukturna Python Dinamichna z opcionalnoyu statichnoyuD unsafe yavne nominalna StatichnaDylan safe Dinamichnasafe neyavne DinamichnaEiffel safe nominalna StatichnaErlang safe neyavne Dinamichna en safe yavne z neyavnim dlya ob yektiv nominalna Statichna dinamichna dlya ob yektivF safe neyavne nominalna Statichnasafe neyavne strukturna DinamichnaForth typeless n a n a n aFortran safe yavne nominalna StatichnaGambas safe yavne nominalna en safe yavne Neyavni ogoloshennya mozhlivi u nalashtuvannyah proyekta nominalna StatichnaGo safe neyavne z mozhlivim yavnim strukturna Statichna en safe chastkovo neyavne lokalne privedennya tipiv nominalna subclassing i strukturna strukturna StatichnaGroovy safe neyavne z mozhlivim yavnim Dinamichna z opcionalnoyu statichnoyu en safe neyavne z mozhlivim yavnim DinamichnaHaskell safe neyavne z mozhlivim yavnim strukturna StatichnaHaxe safe neyavne z mozhlivim yavnim nominalna subclassing i strukturna strukturna Statichna z opcionalnoyu dinamichnoyu en safe neyavne Dinamichna en safe DinamichnaJ safe DinamichnaJava safe yavne nominalna StatichnaJavaScript safe neyavne strukturna Dinamichna en safe DinamichnaKotlin safe chastkovo neyavne lokalne privedennya tipiv nominalna StatichnaLabVIEW safeLua safe neyavne DinamichnaMaple safe DinamichnaMathematica safe DinamichnaMATLAB M code safe Dinamichna en unsafe yavne nominalna Statichna en unsafe yavne strukturna StatichnaOberon safe yavne nominalna Statichna i chastkovo dinamichnaObjective C safe yavne nominalna Dinamichna z opcionalnoyu statichnoyuOCaml safe neyavne z mozhlivim yavnim strukturna StatichnaObject Pascal Delphi safe yavne nominalna StatichnaOpa safe neyavne z mozhlivim yavnim strukturna StatichnaOxygene unsafe neyavne Statichna en safe neyavne strukturna DinamichnaPascal unsafe yavne nominalna StatichnaPerl 5 neyavne DinamichnaPerl 6 chastkovo neyavne Dinamichna z opcionalnoyu statichnoyuPHP neyavne Dinamichna en safe yavne strukturna Statichna dinamichna opcionalno Prolog Dinamichna en DinamichnaPython safe neyavne strukturna DinamichnaREBOL safe neyavne DinamichnaIBM RPG unsafe StatichnaRuby safe neyavne strukturna DinamichnaRust safe neyavne z mozhlivim yavnim Statichna z opcionalnoyu dinamichnoyuS Dinamichna en safe neyavne DinamichnaScala safe chastkovo neyavne lokalne privedennya tipiv nominalna subclassing i strukturna strukturna StatichnaScheme safe neyavne Dinamichna prihovana en safe yavne nominalna StatichnaSimula safe StatichnaSmalltalk safe neyavne DinamichnaStiard ML safe neyavne z mozhlivim yavnim strukturna StatichnaTcl DinamichnaVisual Basic safe neyavne z mozhlivim yavnim nominalna StatichnaVisual Basic NET unsafe yavne Statichna en safe chastkovo neyavne nominalna StatichnaWindows PowerShell safe neyavne Dinamichna en safe nominalna Statichna en safe yavne nominalna StatichnaUnsafe operations are well isolated by a Unchecked prefix with optional dynamic type casting see dynamic cast It is almost safe unsafe features are not commonly used with optional dynamic type see en Optionally typing can be explicitly implied by the first letter of the identifier known as implicit typing within the Fortran community dynamic checking of type extensions i e inherited types explicit for static types optional for formal and virtual proceduresVidguk sistemiBilshist mov programuvannya vivodyat povidomlennya pro pomilki ta abo vinyatki yaksho operaciya ne vikonana Nizhche navedeni movi vivodyat ci povidomlennya Mova Failsafe I OAda Tak vinyatki ALGOL Tak vinyatki abo povernuti znachennya zalezhno vid funkciyi AutoHotkey Ni maye buti yavno perevirena globalna zminna ErrorLevel Bro TakC NiC NiC TakCOBOL NiCommon Lisp TakD Tak dzherelo Eiffel Ni zalezhit vid biblioteki i ne viznacheno samoyu movoyuErlang TakTakFortran Tak en Ni u zagalnomu vipadku programa avarijno zavershuyetsyaGo Ni en Tak en TakHaskell Tak en TakJava TakKotlin TakLabVIEW TakLua Ni deyaki funkciyi ne povertayut poperedzhen chi vinyatkiv Mathematica TakObject Pascal Delphi DeyakiObjective C Tak exceptions OCaml Tak exceptions Perl NiPHP TakPython TakREBOL TakRuby TakRust TakS NevidomijScala TakStandard ML Tak dzherelo Tcl TakVisual Basic Tak en Tak en TakLanguage Failsafe I Ogcc can warn on unchecked error status Newer versions of Visual Studio usually throw exceptions on failed I O when using stdio g can warn on unchecked error status Newer versions of Visual Studio usually throw exceptions on failed I O when using stdio Considerable error checking can be enabled optionally but by default Perl is not failsafe Posilannya99 bottles of beer net one program in over a thousand variations and multiple languages The speed size and dependability of programming languages charts and narrative based on The Computer Language Benchmarks Game data Shapes Source Code Size and Run Time charts based on current Benchmarks Game data Comparison of syntaxes with sample codes Syntax Across Languages Scriptometer scores multiple comparisons of 26 programming languages PLEAC Programming Language Examples Alike Cookbook OHLOH Language Statistics gives an indication of the popularity of programming languages in open source projects History of Programming Language Statements history and comparison of programming languages Top 20 Most Popular Programming Languages of 2017 Research of Most Popular Programming Languages Best Programming Languages to Learn in 2022 Research of the most promising programming languages to learn PrimitkiAda Reference Manual ISO IEC 8652 2005 E Ed 3 Section 6 Subprograms Ada Reference Manual ISO IEC 8652 2005 E Ed 3 Section 12 Generic Units Ada Reference Manual ISO IEC 8652 2005 E Ed 3 Section 9 Tasks and Synchronization Ada Reference Manual ISO IEC 8652 2005 E Ed 3 Annex E Distributed Systems Vak ru ISO 1538 1984 Vak ru JSR 274 Arhiv originalu za 28 bereznya 2015 Procitovano 25 chervnya 2014 ANSI C89 ISO IEC 9899 1990 1999 2011 ISO IEC 14882 1998 2003 2011 Codeproject com Functional Programming in C 3 0 using Lambda Expression ECMA 334 ISO IEC 23270 2006 Softvelocity com ECMA 367 ISO IEC 25436 2006 JSR 241 The Haskell 2010 Language Report Procitovano 7 grudnya 2011 Most Haskell implementations extend the Haskell 2010 standard Lua doesn t have explicit object type more general type of table is used for object definition but does have explicit syntax for object method calling Version releases are accompanied with a definitive Lua Reference Manual showing full syntax and semantics a reference implementation and a test suite These are used to generate other Lua VM implementations and compilers such as and ISO IEC 10514 1 1996 ISO 7185 PHP Manual Chapter 19 Classes and Objects PHP 5 PHP Manual Chapter 17 Functions SMLNJ org The Go Programming Language Specification Sheng Liang Gilad Bracha Dynamic class loading in the Java virtual machine Volume 33 Issue 10 of ACM SIGPLAN Notices October 1998 Developer apple com Scala runs on the Java Virtual Machine from which it inherits the runtime exception handling Div takozhSpisok mov programuvannya