Comparison of programming languages: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Added date. | Use this bot. Report bugs. | Suggested by Jay8g | #UCB_toolbar
 
(768 intermediate revisions by more than 100 users not shown)
Line 1:
{{short description|none}}
{{ProgLangCompare}}
[[Programming language]]s are used for controlling the behavior of a machine (often a [[computer]]). Like [[natural language]]s, programming languages conform tofollow rules for [[syntax]] and [[semantics]].
 
There are [[list of programming languages|thousands of programming languages]]<ref>As of May 2006 Diarmuid Pigott's [http://hopl.murdoch.edu.au/ Encyclopedia of Computer Languages] {{webarchive|url=https://web.archive.org/web/20110220044217/http://hopl.murdoch.edu.au/ |date=2011-02-20}} hosted at [[Murdoch University]], [[Australia]] lists 8512 computer languages.</ref> and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people, but professional [[programmer]]s can easilymay use dozens of different languages duringin theira career.
 
Most programming languages are not standardized by an international (or national) standard, even widely used ones, such as [[Perl]] or [[Standard ML]] (despite the name). Notable standardized programming languages include [[ALGOL]], [[C (programming language)|C]], [[C++]], JavaScript (under the name [[ECMAScript]]), [[Smalltalk]], [[Prolog]], [[Common Lisp]], [[Scheme (programming language)|Scheme]] ([[IEEE]] standard), [[ISLISP]], [[Ada (programming language)|Ada]], [[Fortran]], [[COBOL]], [[SQL]], and [[XQuery]].
 
__TOC__
Line 8 ⟶ 11:
 
==General comparison==
The following table compares general and technical information for a selection of commonly used [[programming language]]s. See the individual languages' articles for further information. Please note that the following table may be missing some information.
 
<!-- Per [[WP:REPEATLINK]]: Wikilink terms on 1st instance only, remove later repeat links. -->
{| class="wikitable sortable"
{{sticky header}}
|-
{{sort-under}}
! Language
{|class="wikitable sortable sort-under sticky-header" style="text-align:center;"
! Intended use <!--What was this supposed to be used for? Not what is this used for now (that would be hard to verify).-->
! [[Programming paradigm|Paradigm]](s)
! [[Standardization|Standardized]]?
|-
! scope="col" | Language
! [[ActionScript|ActionScript 3.0]]
! scope="col" | Original purpose
| Application, Web, Client-side
! scope="col" | [[Imperative programming|Imperative]]
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]]
! scope="col" | [[Object-oriented programming|Object-oriented]]
| {{yes|1996}}, ECMA
! scope="col" | [[Functional programming|Functional]]
! scope="col" | [[Procedural programming|Procedural]]
! scope="col" | [[Generic programming|Generic]]
! scope="col" | [[Reflective programming|Reflective]]
! scope="col" | Other [[Programming paradigm|paradigms]]
! scope="col" | [[Standardization|Standardized]]
 
|-
! scope="row" | [[Ada1C:Enterprise (programming language)|Ada]]
| <!-- Original purpose --> [[Application software development|Application]], [[Rapid application development|RAD]], business, [[General-purpose programming language|general]], [[Web development|web]], [[Mobile app development|mobile]]
| Application, Embedded, System and Realtime
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]],<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-6.html Section 6: Subprograms]</ref> [[concurrent programming language|concurrent]],<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-9.html Section 9: Tasks and Synchronization]</ref> [[distributed programming|distributed]],<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3] [http://www.adaic.org/standards/05rm/html/RM-E.html Annex E: Distributed Systems]</ref> [[generic programming|generic]],<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-12.html Section 12: Generic Units]</ref> [[object-oriented programming|object-oriented]]<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-3-9.html 3.9 Tagged Types and Type Extensions]</ref>
| <!-- Object-oriented --> {{no}}
| {{yes|1983}}, ANSI, ISO, [[GOST]] 27831-88<ref>[http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf Vak.ru]</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[Object-based]], Prototype-based programming
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ActionScript]]
! [[ALGOL 58]]
| <!-- Original purpose --> Application, [[client-side]], web
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[prototype-based]]
| <!-- Standardized? --> {{yes}}<br/>1999-2003, [[ECMAScript|ActionScript 1.0 with ES3, ActionScript 2.0 with ES3 and partial ES4 draft, ActionScript 3.0 with ES4 draft]],<!-- ECMA-262 --> [[ECMAScript for XML|ActionScript 3.0 with E4X]]<!-- ECMA-357 -->
 
|-
! scope="row" | [[Ada (programming language)|Ada]]
! [[ALGOL 60]]
| <!-- Original purpose --> Application, [[Embedded system|embedded]], [[Real-time computing|realtime]], [[System programming language|system]]
| Application
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]]
| <!-- Object-oriented --> {{yes}}<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-3-9.html 3.9 Tagged Types and Type Extensions]</ref>
| {{yes|1960}}, [[IFIP WG 2.1]], ISO<ref>[http://www.open-std.org/jtc1/sc22/docs/oldwgs/wg6.html ISO 1538:1984]</ref>
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-6.html Section 6: Subprograms]</ref>
| <!-- Generic --> {{yes}}<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-12.html Section 12: Generic Units]</ref>
| <!-- Reflective --> {{no}}
|<!-- Other paradigms -->[[concurrent programming language|Concurrent]],<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-9.html Section 9: Tasks and Synchronization]</ref> [[distributed programming|distributed]]<ref>{{Cite web|url=https://www.adaic.org/resources/add_content/standards/05rm/html/RM-E.html|title=Distributed Systems|website=www.adaic.org}}</ref>
| <!-- Standardized? --> {{yes}}<br/>1983, 2005, 2012, ANSI, ISO, [[GOST]] 27831-88<ref>{{Cite web |url=http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf |title=Vak.ru |access-date=2008-08-09 |archive-url=https://web.archive.org/web/20170330020459/http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf |archive-date=2017-03-30 |url-status=dead}}</ref>
 
|-
! scope="row" | [[ALGOL 68Aldor]]
| <!-- Original purpose --> Highly [[Domain-specific language|___domain-specific]], [[Computer algebra|symbolic computing]]
| Application
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[concurrent programming language|concurrent]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1968}}, [[IFIP WG 2.1]], [[GOST 27974-88]],<ref>[http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf Vak.ru]</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[AtejiALGOL PX58]]
| Parallel<!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| [[object-oriented programming|object-oriented]], [[pi calculus]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ALGOL 60]]
! [[APL (programming language)|APL]]
| <!-- Original purpose --> Application
| Application, Data processing
| <!-- Imperative --> {{yes}}
| [[array programming|array-oriented]], [[tacit programming|tacit]]
| <!-- Object-oriented --> {{no}}
| {{yes|1989}}, ISO
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1960, [[IFIP WG 2.1]], ISO<ref>{{Cite web|url=https://www.open-std.org/jtc1/sc22/docs/oldwgs/wg6.html|title=ISO/IEC JTC1/SC22/WG6 - Algol|website=www.open-std.org}}</ref>
 
|-
! scope="row" | [[ALGOL 68]]
! [[Assembly language]]
| <!-- Original purpose --> Application
| General
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], any
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{yes}}<br/>1968, [[IFIP WG 2.1]], [[GOST 27974-88]],<ref>{{Cite web |url=http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf |title=Vak.ru |access-date=2008-08-09 |archive-url=https://web.archive.org/web/20170324231641/http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf |archive-date=2017-03-24 |url-status=dead}}</ref>
 
|-
! scope="row" | [[Ateji PX]]
| <!-- Original purpose --> Parallel application
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[pi calculus]]
| <!-- Standardized? --> {{no}}
 
! [[AutoHotkey]]
| Highly ___domain-specific, GUI automation(macros)
| [[imperative programming|imperative]]
| {{no}}
|-
! scope="row" | [[APL (programming language)|APL]]
! [[AutoIt]]
| <!-- Original purpose --> Application, [[data processing]]
| Highly ___domain-specific, GUI automation(macros)
| <!-- Imperative --> {{yes}}
| [[event-driven programming|event-driven]], [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[array programming|Array-oriented]], [[tacit programming|tacit]]
| <!-- Standardized? --> {{yes}}<br/>1989, ISO
 
|-
! scope="row" | [[Assembly language]]
! [[BASIC]]
| <!-- Original purpose --> General
| Application, Education
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{no}}
| {{yes|1983}}, [http://portal.acm.org/citation.cfm?id=988221 ANSI], ISO
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Any, syntax is usually highly specific, related to the target processor
| <!-- Standardized? --> {{yes}}<br/>1985 IEEE 694-1985<ref>{{Cite web|url=https://standards.ieee.org/ieee/694/950/|title=IEEE Standards Association|website=IEEE Standards Association}}</ref>
 
|-
! scope="row" | [[AutoHotkey]]
! [[BBj]]
| <!-- Original purpose --> GUI automation ([[Macro (computer science)#Application macros and scripting|macros]]), highly ___domain-specific
| Application, Business, Web
| <!-- Imperative --> {{yes}}
| [[procedural programming|procedural]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{yes}}<br/><ref>{{Cite web|url=https://www.autohotkey.com/docs/Objects.htm|title=Objects - Definition & Usage}}</ref>
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[BeanShellAutoIt]]
| <!-- Original purpose --> GUI automation (macros), highly ___domain-specific
| Application, Scripting
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{no}}
| {{no|In progress}}, [[Java Community Process|JCP]]<ref>[http://jcp.org/en/jsr/detail?id=274 JSR 274]</ref>
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[BLISSBallerina (programming language)|BLISSBallerina]]
| <!-- Original purpose --> Integration, agile, [[server-side]], general
| System
| <!-- Imperative --> {{yes}}
| [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent, transactional, statically and strongly typed, diagrammatic–visual
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Ballerina Language Specification<ref>{{cite web |url=https://ballerina.io/res/Ballerina-Language-Specification-WD-2015-05-01.pdf |publisher=WSO2 |title=Ballerina Language Specification |date=2018-05-01 |access-date=2018-05-03 |archive-date=2018-05-04 |archive-url=https://web.archive.org/web/20180504090305/https://ballerina.io/res/Ballerina-Language-Specification-WD-2015-05-01.pdf |url-status=dead}}</ref>
 
|-
! scope="row" | [[Bash (Unix shell)|Bash]]
! [[BlitzMax]]
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| Application, Game
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003">[[POSIX.2]], Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.)</ref>
 
|-
! scope="row" | [[BASIC]]
! [[Boo (programming language)|Boo]]
| <!-- Original purpose --> Application, education
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1983, ANSI, ISO, ECMA
 
|-
! scope="row" | [[BeanShell]]
! [[C (programming language)|C]]
| <!-- Original purpose --> Application, scripting
| System<ref>[http://cm.bell-labs.com/cm/cs/who/dmr/chist.html CM.bell-labs.com]</ref>
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1989}}, [[ANSI C|ANSI C89, ISO C90/C99]]
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}<br/>In progress, [[Java Community Process|JCP]]<ref>{{Cite web|url=https://jcp.org/en/jsr/detail?id=274|title=The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 274|website=jcp.org}}</ref>
 
|-
! scope="row" | [[C++BLISS]]
| Application;<!-- Original purpose --> System
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{no}}
| {{yes|1998}}, ISO
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[BlitzMax]]
! [[C Sharp (programming language)|C#]]
| <!-- Original purpose --> Application, Webgame
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]],<ref>[http://www.codeproject.com/KB/cs/intro_functional_csharp.aspx Codeproject.com]</ref> [[generic programming|generic]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{yes|2000}}, ECMA, ISO<ref>ECMA-334; ISO/IEC 23270:2006</ref>
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ClarionBoo (programming language)|ClarionBoo]]
| <!-- Original purpose --> Application, game scripting
| General, Web, Business
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]]<ref>[http://www.softvelocity.com Softvelocity.com]</ref>
| <!-- Object-oriented --> {{yes}}
|{{unknown}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[CleanC (programming language)|CleanC]]
| <!-- Original purpose --> Application, system,<ref>{{Cite web|url=https://www.bell-labs.com/usr/dmr/www/chist.html|title=Chistory|website=www.bell-labs.com}}</ref> general purpose, low-level operations
| General
| <!-- Imperative --> {{yes}}
| [[functional programming|functional]], [[generic programming|generic]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1989, [[ANSI C|ANSI C89, ISO/IEC C90, ISO/IEC C95, ISO/IEC C99, ISO/IEC C11, ISO/IEC C17, ISO/IEC C2x]]<ref>{{Cite web|url=https://www.open-std.org/JTC1/SC22/WG14/|title=ISO/IEC JTC1/SC22/WG14 - C|website=www.open-std.org}}</ref>
 
|-
! scope="row" | [[ClojureC++]]
| <!-- Original purpose --> Application, system
| General
| <!-- Imperative --> {{yes}}
| [[functional programming|functional]], [[concurrent programming language|concurrent]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{yes}}<br/>1998, [[C++#Standardization|ISO/IEC C++98, ISO/IEC C++03, ISO/IEC C++11, ISO/IEC C++14, ISO/IEC C++17, ISO/IEC C++20, ISO/IEC C++23, ISO/IEC C++26]]<ref>{{Cite web|url=https://www.open-std.org/JTC1/SC22/WG21/|title=ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP|website=www.open-std.org}}</ref>
 
|-
! scope="row" | [[CLUC Sharp (programming language)|CLUC#]]
| <!-- Original purpose --> Application, RAD, business, client-side, general, server-side, web, [[game programming]]
| General
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}<ref>{{Cite web|url=http://www.codeproject.com/KB/cs/intro_functional_csharp.aspx|title=Codeproject.com: Functional Programming in C# 3.0 using Lambda Expression}}</ref>
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, structured
| <!-- Standardized? --> {{yes}}<br/>2000, ECMA, ISO<ref>ECMA-334; ISO/IEC 23270:2006</ref>
 
|-
! scope="row" | [[Clarion (programming language)|Clarion]]
! [[COBOL]]
| <!-- Original purpose --> General, business, web
| Application, Business
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{yes}}
| {{yes|2002 (ISO/IEC 1989)}}
| <!-- Functional --> {{yes}}<ref>{{Cite web|url=https://www.softvelocity.com/|title=Clarion - Home|website=www.softvelocity.com}}</ref>
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
 
|-
! scope="row" | [[CobraClean (programming language from Cobra Language LLC)|CobraClean]]
| <!-- Original purpose --> General
| General, Application, Business, Web
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[generic programming|generic]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Clojure]]
! [[ColdFusion Markup Language|ColdFusion (CFML)]]
| <!-- Original purpose --> General
| Web Development
| <!-- Imperative --> {{no}}
| [[procedural programming|procedural]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[CLU (programming language)|CLU]]
! [[Common Lisp|Common&nbsp;Lisp]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[reflective programming|reflective]], [[generic programming|generic]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1994}}, ANSI
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[COBOL]]
! [[COMAL|Comal 80]]
| <!-- Original purpose --> Application, business
| Education
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014, 2023
 
|-
! scope="row" | [[Cobra (programming language)|Cobra]]
! [[Crystal|Crystal 1.0.0]]
| <!-- Original purpose --> Application, business, general, web
| Education
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[functional programming|functional]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ColdFusion Markup Language|ColdFusion]] (CFML)
<!-- If there really is a language named "?" please uncomment this and verify it. If else, please remove.
| <!-- Original purpose --> Web
! ?
| <!-- Imperative --> {{no}}
| ?
| <!-- Object-oriented --> {{yes}}
| [[imperative programming|imperative]], [[event-driven programming|event-driven]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[generic programming|generic]], [[reflective programming|reflective]]
| <!-- Functional --> {{no}}-->
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Common Lisp]]
! [[Cython]]
| <!-- Original purpose --> General
| General, Application, Numerical Computing
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[aspect-oriented programming|aspect-oriented]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Extensible syntax, [https://github.com/equwal/CLAPL Array-oriented], [[Macro (computer science)#Syntactic macros|syntactic macros]], [[multiple dispatch]], concurrent
| <!-- Standardized? --> {{yes}}<br/>1994, ANSI
 
|-
! scope="row" | [[COMAL]] 80
! [[D (programming language)|D]]
| <!-- Original purpose --> Education
| Application; System
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[DylanCrystal (programming language)|DylanCrystal]]
| <!-- Original purpose --> General purpose
| Application
| <!-- Imperative --> {{yes}}
| [[functional programming|functional]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{yes}}<ref>{{Cite web|url=https://github.com/crystal-lang/crystal#why|title=Crystal|website=[[GitHub]]|date=2 November 2021}}</ref>
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}<ref>{{Cite web|url=https://crystal-lang.org/reference/1.12/syntax_and_semantics/generics.html|title=Crystal Generics|website=crystal-lang.org|date=13 April 2024}}</ref>
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->Concurrent<ref>{{Cite web |title=Concurrency - Crystal |url=https://crystal-lang.org/reference/1.11/guides/concurrency.html |access-date=2024-04-02 |website=crystal-lang.org}}</ref>
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[EiffelCurry (programming language)|EiffelCurry]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{no}}
| {{yes|2005}}, ECMA, ISO<ref>ECMA-367; ISO/IEC 25436:2006</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[lazy evaluation]], non-determinism
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Curry Language Report
 
|-
! scope="row" | [[Cython]]
! [[Erlang (programming language)|Erlang]]
| <!-- Original purpose --> Application, Distributedgeneral, Telecom[[numerical computing]]
| <!-- Imperative --> {{yes}}
| [[functional programming|functional]], [[concurrent programming language|concurrent]], [[distributed programming|distributed]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[aspect-oriented programming|Aspect-oriented]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[EuphoriaD (programming language)|EuphoriaD]]
| <!-- Original purpose --> Application, system
| <!-- Imperative --> {{yes}}
| [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Generative, concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[FactorDart (programming language)|FactorDart]]
| <!-- Original purpose --> Application, web, server-side, mobile, [[Internet of things|IoT]]
|
| <!-- Imperative --> {{yes}}
| [[Stack-oriented programming language|stack-oriented]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Structured
| <!-- Standardized? --> {{yes}}<br/>ECMA-408 standard
 
|-
! scope="row" | [[Delphi (software)|Delphi]], [[Object Pascal]]
! [[FP (programming language)|FP]]
| <!-- Original purpose --> General purpose
|
| <!-- Imperative --> {{yes}}
| [[Functional programming|functional]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --><br/> {{unknown}}
 
 
|-
! scope="row" | [[F SharpDylan (programming language)|F#Dylan]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[Functional programming|functional]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ForthEiffel (programming language)|ForthEiffel]]
| <!-- Original purpose --> General, application, business, client-side, server-side, web (EWF)
| General
| <!-- Imperative --> {{yes}}
| [[Imperative programming|imperative]], [[Stack-oriented programming language|stack-oriented]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1994}}, ANSI
| <!-- Functional --> {{yes}}<ref>{{Cite web|url=https://se.inf.ethz.ch/~meyer/publications/online/eiffel/basic.html|title=Bertrand Meyer: Basic Eiffel language mechanisms|website=se.inf.ethz.ch}}</ref><ref>[[Closure (computer programming)#Inline agents .28Eiffel.29:|Closure (computer programming)]]</ref>
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}} [http://se.inf.ethz.ch/old/people/leitner/erl_g Erl-G]
| <!-- Other paradigms --> Distributed [https://docs.eiffel.com/book/solutions/concurrent-eiffel-scoop: SCOOP], [https://docs.eiffel.com/book/method/void-safe-programming-eiffel: Void-safe]
| <!-- Standardized? --> {{yes}}<br/>2005, ECMA, ISO<ref>ECMA-367; ISO/IEC 25436:2006</ref>
 
|-
! scope="row" | [[ELAN (programming language)|ELAN]]
! [[Fortran]]
| <!-- Original purpose --> Education
| Application, Numerical Computing
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{no}}
| {{yes|1966}}, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Structured programming|Structured]], [[Top-down and bottom-up design|stepwise refinement]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Elixir (programming language)|Elixir]]
! [[Gambas]]
| <!-- Original purpose --> Application, [[Distributed computing|distributed]]
| Application
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[Object-oriented programming|object-oriented]], [[event-driven programming|event-driven]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, distributed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Erlang (programming language)|Erlang]]
! [[Game Maker Language]]
| <!-- Original purpose --> Application, Gamesdistributed
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, distributed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[GoEuphoria (programming language)|GoEuphoria]]
| <!-- Original purpose --> Application
| Application; System
| <!-- Imperative --> {{no}}
| [[concurrent programming language|concurrent]], [[imperative programming|imperative]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[GosuFactor (programming language)|GosuFactor]]
| <!-- Original purpose --> General
| General; Application; Web; Scripting; System
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{maybe|Can be viewed as}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[stack-oriented programming|Stack-oriented]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[FP (programming language)|FP]]
! [[GraphTalk]]
| <!-- Original purpose -->
| Application
| <!-- Imperative --> {{no}}
| [[Logic programming|logic-oriented]], [[Object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[GroovyF Sharp (programming language)|GroovyF#]]
| <!-- Original purpose --> Application
| Application, Web
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[aspect-oriented programming|aspect-oriented]]
| <!-- Object-oriented --> {{yes}}
| {{no|In progress}}, [[Java Community Process|JCP]]<ref>[http://jcp.org/en/jsr/detail?id=241 JSR 241]</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[HarbourForth (programming language)|HarbourForth]]
| <!-- Original purpose --> General
| General, Application, Business, Web, Data processing
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[declarative programming|declarative]], [[generic programming|generic]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Stack-oriented
| <!-- Standardized? --> {{yes}}<br/>1994, ANSI
 
|-
! scope="row" | [[Fortran]]
! [[Haskell (programming language)|Haskell]]
| <!-- Original purpose --> Application, numerical computing
| <!-- Imperative --> {{yes}}
| [[functional programming|functional]], [[generic programming|generic]], [[lazy evaluation]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1998}}, Haskell 98<ref>{{cite web|url=http://www.haskell.org/onlinereport/ |title=The Haskell 98 Language Report |accessdate=2009-03-07}} Most Haskell implementations extend the Haskell 98 standard.</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Array-based, vectorized, concurrent, native distributed/shared-memory parallelism
| <!-- Standardized? --> {{yes}}<br/>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)
 
|-
! scope="row" | [[HyperNextFreeBASIC]]
| <!-- Original purpose --> Application, Educationnumerical computing
| <!-- Imperative --> {{yes}}
| [[procedural programming|procedural]], [[weak typing|weakly typed]], [[event-driven programming|event-driven]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[IBM RPGGambas]]
| <!-- Original purpose --> Application
| Application, System
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Game Maker Language]]
! [[Io (programming language)|Io]]
| <!-- Original purpose --> Application, Host-drivengame Scriptingprogramming
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[GLBasic]]
! [[J (programming language)|J]]
| <!-- Original purpose --> Application, games
| Data processing
| <!-- Imperative --> {{yes}}
| [[array programming|array-oriented]], [[function-level programming|function-level]], [[tacit programming|tacit]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Simple object-oriented
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[JADEGo (programming language)|JADEGo]]
| <!-- Original purpose --> Application, Distributedweb, server-side
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{maybe|Can be viewed as}}<ref>{{Cite web|url=https://go.dev/doc/faq|title=Frequently Asked Questions (FAQ) - The Go Programming Language|website=go.dev}}</ref>
| {{no}}
| <!-- Functional --> {{maybe|Can be viewed as}}<ref>{{Cite web |url=https://go.dev/doc/codewalk/functions/ |title=Codewalk: First-Class Functions in Go |quote=Go supports first class functions, higher-order functions, user-defined function types, function literals, closures, and multiple return values. This rich feature set supports a functional programming style in a strongly typed language.}}</ref>
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Go Language Specification
 
|-
! scope="row" | [[JavaGosu (programming language)|JavaGosu]]
| General,<!-- Original purpose --> Application, Webgeneral, Businessscripting, Server-Side, Client-sideweb
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{yes}}, De-facto standard through the [http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html Java Language Specification]
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[GraphTalk]]
! [[JavaScript]]
| <!-- Original purpose --> Application
| Web, Client-side
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[prototype-based]], [[functional programming|functional]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1997}}, ECMA
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Logic
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[JoyGroovy (programming language)|JoyGroovy]]
| <!-- Original purpose --> Application, general, scripting, web
| Research
| <!-- Imperative --> {{yes}}
| [[Functional programming|functional]], [[Stack-oriented programming language|stack-oriented]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Meta-programming
| <!-- Standardized? --> {{no}}<br/>In progress, [[Java Community Process|JCP]]<ref>{{Cite web|url=https://jcp.org/en/jsr/detail?id=241|title=The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 241|website=jcp.org}}</ref>
 
|-
! scope="row" | [[Harbour (programming language)|Harbour]]
! [[LabVIEW|LabVIEW ("G")]]
| <!-- Original purpose --> Application, business, data processing, general, web
| Application, Industrial instrumentation and automation
| <!-- Imperative --> {{yes}}
| [[Dataflow programming|dataflow]], [[Visual programming language|visual]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[declarative programming|Declarative]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Haskell]]
! [[Lisp (programming language)|Lisp]]
| <!-- Original purpose --> Application
| General
| <!-- Imperative --> {{no}}
| [[Functional programming|functional]]
| <!-- Object-oriented --> {{no}}
| {{unk}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Lazy evaluation
| <!-- Standardized? --> {{yes}}<br/>2010, Haskell 2010<ref>{{cite web |url=http://www.haskell.org/onlinereport/haskell2010/ |title=The Haskell 2010 Language Report |access-date=2011-12-07}} Most Haskell implementations extend the Haskell 2010 standard.</ref>
 
|-
! scope="row" | [[LogtalkHaxe]]
| <!-- Original purpose --> Application, Artificialgeneral, intelligenceweb
| <!-- Imperative --> {{yes}}
| [[logic programming|logic]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[HyperTalk]]
! [[Lua (programming language)|Lua]]
| Embedded<!-- scripting,Original purpose --> Application, RAD, general
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]<!-- Lua doesn't have explicit "object" type (more general type of "table" is used for object definition), but have explicit syntax for object method calling -->, [[functional programming|functional]], [[procedural programming|procedural]], [[aspect-oriented programming|aspect-oriented]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{no}}
| {{no}}<ref>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 [[virtual machine|VM]] implementations and compilers such as [[Kahlua (software)|Kahlua]] and [[LLVM-Lua]].</ref>
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Weakly typed
| <!-- Standardized? --> {{unknown}}
 
|-
! scope="row" | [[Io (programming language)|Io]]
! [[Mathematica]]
| <!-- Original purpose --> Application, host-driven scripting
| Highly ___domain-specific, Symbolic Computing
| <!-- Imperative --> {{yes}}
| [[procedural programming|procedural]], [[functional programming|functional]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Information Processing Language|IPL]]
! [[MATLAB]]
| <!-- Original purpose --> General
| Highly ___domain-specific, Numerical Computing
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
 
|-
! scope="row" | [[Modula-2ISLISP]]
| <!-- Original purpose --> General
| Application; System
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[generic programming|generic]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1996}}, ISO<ref>ISO/IEC 10514-1:1996</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1997, 2007, [[International Organization for Standardization|ISO]]
 
|-
! scope="row" | [[J (programming language)|J]]
! [[Modula-3]]
| <!-- Original purpose --> Application, [[data processing]]
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Array-oriented, [[function-level programming|function-level]], tacit, concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[OberonJADE (programming language)|OberonJADE]]
| <!-- Original purpose --> Application;, Systemdistributed
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Java (programming language)|Java]]
! [[Objective-C]]
| <!-- Original purpose --> Application, business, client-side, general, mobile development, server-side, web
| Application
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{no}}<ref>[http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Standards.html GCC.GNU.org]</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Java Language Specification
 
|-
! scope="row" | [[JavaScript]]
! [[Objective Caml]]
| <!-- Original purpose --> Client-side, server-side, web
| Application
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[Functional programming|functional]], [[generic programming|generic]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[prototype-based]]
| <!-- Standardized? --> {{yes}}<br/>[[ECMA-262]] standard
 
|-
! scope="row" | [[Joy (programming language)|Joy]]
! [[Object Pascal]] ([[Borland Delphi|Delphi]])
| <!-- Original purpose --> Research
| Application
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]], [[event-driven programming|event-driven]], [[reflective programming|reflective]], [[aspect-oriented programming|aspect-oriented]]<ref>[http://prismwiki.embarcadero.com/en/RemObjects_Cirrus Cirrus: Aspect-oriented programming in Delphi Prism]</ref>
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Stack-oriented
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Occamjq (programming language)|Occamjq]]
| <!-- Original purpose --> "awk for JSON"
| General
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[concurrent programming language|concurrent]], [[process-oriented programming|process-oriented]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Tacit programming|Tacit]], [[Backtracking]], [[Generator (computer programming)|Streaming]], [[Parsing expression grammar|PEG]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[OxygeneJulia (programming language)|OxygeneJulia]]
| <!-- Original purpose --> General, technical computing
| Application
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{maybe|Can be viewed as}}<ref>{{Cite web |url=https://medium.com/@abhimanyuaryan/object-oriented-programming-in-julia-4dbde2661fde|title=Object-Oriented programming in julia|date=4 June 2023 |quote= in Julia, Oriented programming is not the primary focus, instead it emphasizes multiple dispatches, a more general concept. Despite this, OOP can still be achieved in Julia through the use of composite types and methods.}}</ref><ref>{{Cite web |url=https://dev.to/acmion/julia-object-oriented-programming-5dgh |title=Julia Object Oriented Programming |date=29 May 2021 |quote=Julia does only partially support object oriented programming (OOP) }}</ref>
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Multiple dispatch, meta, scalar and array-oriented, parallel, concurrent, distributed ("cloud")
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Julia Documentation<ref>{{Cite web|url=https://docs.julialang.org/en/v1/|title=Julia Documentation · The Julia Language|website=docs.julialang.org}}</ref>
 
|-
! scope="row" | [[OzK (programming language)|OzK]]
| <!-- Original purpose --> Data processing, business
| Application, Education, Distribution
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[logic programming|logic]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[concurrent programming|concurrent]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Array-oriented, tacit
| <!-- Standardized? --> {{unknown}}
 
|-
! scope="row" | [[PascalKotlin (programming language)|PascalKotlin]]
| <!-- Original purpose --> Application, general, mobile development, server-side, client-side, web, scripting<ref>{{Cite web|url=https://github.com/Kotlin/kotlin-script-examples/blob/master/jvm/main-kts/MainKts.md|title=kotlin-script-examples/jvm/main-kts/MainKts.md at master · Kotlin/kotlin-script-examples|website=GitHub}}</ref>, ___domain-specific<ref>{{Cite web|url=https://kotlinlang.org/docs/type-safe-builders.html|title=Type-safe builders &#124; Kotlin|website=Kotlin Help}}</ref>
| Application, Education
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1983}}, ISO<ref>ISO 7185</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}<ref>{{cite web |url=http://blog.jetbrains.com/kotlin/2014/07/m8-is-out/ |title=M8 is out! |date=2 July 2014 |quote=As a first peek into the future reflective capabilities of Kotlin, you can now access properties as first-class objects in Kotlin}}</ref>
| <!-- Other paradigms --> Concurrent<ref>{{Cite web|url=https://kotlinlang.org/docs/coroutines-overview.html|title=Coroutines &#124; Kotlin|website=Kotlin Help}}</ref>
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Kotlin Language Specification
 
|-
! scope="row" | [[KornShell|Ksh]]
! [[Pawn (programming language)|Pawn]]
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| Embedded, Host-driven Scripting
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Several variants, custom programmable, dynamic loadable modules
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003"/>
 
|-
! scope="row" | [[LabVIEW]] (G)
! [[Perl]]
| <!-- Original purpose --> Application, industrial instrumentation-automation
| Application, Text processing, Scripting, Web
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[reflective programming|reflective]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[dataflow programming|Dataflow]], [[visual programming language|visual]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Lisp (programming language)|Lisp]]
! [[PHP]]
| <!-- Original purpose --> General
| Web, Server-side
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[procedural programming|procedural]],<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.functions.php Chapter 17. Functions]</ref> [[object-oriented programming|object-oriented]],<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.oop5.php Chapter 19. Classes and Objects (PHP 5)]</ref> [[reflective programming|reflective]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
 
|-
! scope="row" | [[PL/ILiveCode]]
| <!-- Original purpose --> Application, RAD, general
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{yes|1969}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Weakly typed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Logtalk]]
! [[Plus (programming language)|Plus]]
| <!-- Original purpose --> Artificial intelligence, application
| Application, System development
| <!-- Imperative --> {{no}}
| [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Linden Scripting Language]] (LSL)
! [[Prolog]]
| <!-- Original purpose --> Virtual worlds content scripting and animation
| Application, Artificial intelligence
| <!-- Imperative --> {{yes}}
| [[logic programming|logic]]
| <!-- Object-oriented --> {{no}}
| {{yes|1995}}, ISO
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Scripts exist in in-world objects
| <!-- Standardized? --> {{maybe|De facto}}<br/>reference is the [[Second Life]] implementation of [[Linden Scripting Language|LSL]].<ref>Halcyon (Inworldz) and Open Sims propose compatible implementations with additional functions.</ref>
 
|-
! scope="row" | [[Lua (programming language)|Lua]]
! [[PureBasic]]
| <!-- Original purpose --> Application, embedded scripting
| <!-- Imperative --> {{yes}}
| [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}<ref>Lua does not have explicit "object" type (more general type of "table" is used for object definition), but does have explicit syntax for object method calling</ref>
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented, prototype-based
| <!-- Standardized? --> {{no}}<ref>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 [[virtual machine|VM]] implementations and compilers such as Kahlua and LLVM-Lua.</ref>
 
|-
! scope="row" | [[Maple (software)|Maple]]
! [[Python (programming language)|Python]]
| <!-- Original purpose --> Symbolic computation, numerical computing
| General, Application, Scripting, Web
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[aspect-oriented programming|aspect-oriented]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{no}}<ref>Language changes are done using a formally documented procedure, starting with a Python Enhancement Proposal (PEP)s. Python version releases are accompanied with a Language Reference Manual showing syntax and semantics; a reference implementation, and test suite. These are used to generate other Python implementations such as [[Jython]] and [[IronPython]].</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Distributed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Mathematica]]
! [[REALbasic]]
| <!-- Original purpose --> [[Symbolic language (programming)|Symbolic language]]
| Application
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{yes}}
| {{unk}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic, distributed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[REBOLMATLAB]]
| <!-- Original purpose --> Highly ___domain-specific, numerical computing
| Distributed
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[dialecting|dialected]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Modula-2]]
! [[Ruby (programming language)|Ruby]]
| <!-- Original purpose --> Application, system
| Application, Scripting, Web
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[aspect-oriented programming|aspect-oriented]], [[reflective programming|reflective]], [[functional programming|functional]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1996, ISO<ref>ISO/IEC 10514-1:1996</ref>
 
|-
! scope="row" | [[Modula-3]]
! [[Rust (programming language)|Rust]]
| <!-- Original purpose --> Application
| Application, System
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[concurrent programming|concurrent]], [[Functional programming|functional]], [[generic programming|generic]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[MUMPS]] (M)
! [[S (programming language)|S]]
| <!-- Original purpose --> General, application, databases
| Application, Statistics
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[functional programming|functional]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{planned|Approved for next Standard}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{some|Partially}} Thru Indirection and Xecute
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[Concurrent computing|Concurrent]], [[multi-user]], [[NoSQL]], [[transaction processing]]
| <!-- Standardized? --> {{yes}}<br/>1977 ANSI, 1995, ISO 2020
 
|-
! scope="row" | [[S-LangNim (programming language)|S-LangNim]]
| <!-- Original purpose --> Application, Scriptinggeneral, web, scripting, Numericalsystem
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Multiple dispatch, concurrent, [[Metaprogramming|meta]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ScalaOberon (programming language)|ScalaOberon]]
| <!-- Original purpose --> Application, system
| Application, Distributed, Web
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[generic programming|generic]], [[object-functional]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Object Pascal]]
! [[Scheme (programming language)|Scheme]]
| <!-- Original purpose --> Application, general, mobile app, web
| General, Education
| <!-- Imperative --> {{yes}}
| [[functional programming|functional]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1998}}, R<sup>6</sup>RS
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Structured
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Objective-C]]
! [[Simula]]
| <!-- Original purpose --> Application, general
| General, Education
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]], [[discrete event simulation]], [[multi-threaded]] (quasi-parallel) program execution
| <!-- Object-oriented --> {{yes|1968}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[SmalltalkOCaml]]
| <!-- Original purpose --> Application, Educationgeneral
| <!-- Imperative --> {{yes}}
| [[object-oriented programming|object-oriented]], [[concurrent programming|concurrent]], [[event-driven programming|event-driven]], [[declarative programming|declarative]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{yes|1998}}, [http://www.techstreet.com/cgi-bin/detail?product_id=56122 ANSI]
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Occam (programming language)|Occam]]
! [[SNOBOL]]
| <!-- Original purpose --> General
| Text processing
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{no}}
| {{unk}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent, [[process-oriented programming|process-oriented]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Opa (programming language)|Opa]]
! [[Standard ML]]
| <!-- Original purpose --> Web applications
| Application
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[Functional programming|functional]], [[generic programming|generic]]
| <!-- Object-oriented --> {{no}}
| {{yes|1997}}, SML '97<ref>[http://www.smlnj.org/sml97.html SMLNJ.org]</ref>
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Distributed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[TclOpenLisp]]
| <!-- Original purpose --> General, Embedded Lisp Engine
| Application, Scripting, Web
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[procedural programming|procedural]], [[event-driven programming|event-driven]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{maybe|Optionally}}<br/> [[ISLISP]]
 
|-
! scope="row" | [[Oxygene (programming language)|Oxygene]]
! [[Visual Basic|Visual&nbsp;Basic]]
| <!-- Original purpose --> Application
| Application, Education
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[Component-oriented programming|component-oriented]], [[event-driven programming|event-driven]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Oz (programming language)|Oz-Mozart]]
! [[Visual Basic .NET|Visual&nbsp;Basic&nbsp;.NET]]
| <!-- Original purpose --> Application, Educationdistribution, Webeducation
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Concurrent, logic
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Pascal (programming language)|Pascal]]
! [[Visual Prolog]]
| <!-- Original purpose --> Application, education
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[declarative programming|declarative]], [[logical programming|logical]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[event-driven programming|event-driven]]
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1983, ISO<ref>ISO 7185</ref>
 
|-
! scope="row" | [[Perl]]
! [[Windows PowerShell]]
| <!-- Original purpose --> Application, scripting, text processing, Web
| Administration
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[pipeline programming|pipeline]], [[reflective programming|reflective]]
| <!-- Object-oriented --> {{yes}}
| {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[PHP]]
! [[XL (programming language)|XL]]
| <!-- Original purpose --> Server-side, web application, web
|
| <!-- Imperative --> {{yes}}
| [[imperative programming|imperative]], [[concept programming]], [[object-oriented programming|object-oriented]]
| <!-- Object-oriented --> {{yes}}<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.oop5.php Chapter 19. Classes and Objects (PHP 5)],</ref>
| {{no}}
| <!-- Functional --> {{yes}}<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.functions.php Chapter 17. Functions]</ref>
|-class="sortbottom"
| <!-- Procedural --> {{yes}}
! Language
| <!-- Generic --> {{no}}
! Intended use <!--What was this supposed to be used for? Not what is this used for now (that would be hard to verify).-->
| <!-- Reflective --> {{yes}}
! [[Programming paradigm|Paradigm]](s)
| <!-- Other paradigms -->
! [[Standardization|Standardized]]?
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via language specification and Requests for Comments (RFCs)
|}
 
==Type systems==
Brief Definitions
*'''Compatibility among composite types''' is how functions are applied to data typed similarly to its intended type. Name-based compatibility means that functions work only on data of its intended type and declared subtypes. Property-based compatibility means that functions work on any data that has the same properties as its intended type.
*'''Type checking''' is how type errors are checked. Static checking occurs at compile-time. Dynamic checking occurs at run-time.
{| class="wikitable sortable"
|-
! scope="row" | [[PL/I]]
! Language
| <!-- Original purpose --> Application
! [[Strongly typed programming language|Type strength]]
| <!-- Imperative --> {{yes}}
! [[Type safety]]
| <!-- Object-oriented --> {{yes}}
! [[Type_system#Explicit_or_implicit_declaration_and_inference|Expression of types]]
| <!-- Functional --> {{no}}
! [[Type system#Compatibility: equivalence and subtyping|Compatibility among composite types]] <!-- dynamic typing doesn't automatically mean it has property-based compatibility -->
| <!-- Procedural --> {{yes}}
! [[Type_system#Type_checking|Type checking]]
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1969, ECMA-50 (1976)
 
|-
! scope="row" | [[Plus (programming language)|Plus]]
! [[ActionScript|ActionScript 3.0]]
| <!-- Original purpose --> Application, system development
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{no}}
| implicit with optional explicit typing
| <!-- Functional --> {{no}}
|
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[PostScript]]
! [[Ada (programming language)|Ada]]
| <!-- Original purpose --> Graphics, page description
| strong
| <!-- Imperative --> {{yes}}
| safe<ref group=TS>Unsafe operations are well isolated by a "Unchecked_" prefix.</ref>
| <!-- Object-oriented --> {{no}}
| explicit
| <!-- Functional --> {{no}}
| name-based
| <!-- Procedural --> {{yes}}
| partially dynamic<ref group=TS>Dynamic type checking is used when type safety can not be determined staticly i.e. for tagged types (type extension / inheritance), numeric ranges and array bounds.</ref>
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Concatenative programming language|Concatenative]], [[Stack-oriented programming|stack-oriented]]
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via the PostScript Reference Manual<ref>{{Cite web |url=https://www.adobe.com/products/postscript/pdfs/PLRM.pdf |title=PostScript Language Reference Manual |access-date=2017-02-18 |archive-url=https://web.archive.org/web/20170218093716/https://www.adobe.com/products/postscript/pdfs/PLRM.pdf |archive-date=2017-02-18 |url-status=dead}}</ref>
 
|-
! scope="row" | [[Windows PowerShell|PowerShell]]
! [[ALGOL 58]]
| <!-- Original purpose --> Administration, application, general, scripting
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| explicit
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[pipeline programming|Pipeline]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ALGOL 60Prolog]]
| <!-- Original purpose --> Application, artificial intelligence
| strong
| <!-- Imperative --> {{no}}
| safe
| <!-- Object-oriented --> {{no}}
| explicit
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic, declarative
| <!-- Standardized? --> {{yes}}<br/>1995, ISO/IEC 13211-1:1995, TC1 2007, TC2 2012, TC3 2017
 
|-
! scope="row" | [[ALGOL 68PureBasic]]
| <!-- Original purpose --> Application
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{no}}
| explicit
| <!-- Functional --> {{no}}
| property-based
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[APLPython (programming language)|APLPython]]
| <!-- Original purpose --> Application, general, web, scripting, artificial intelligence, scientific computing
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| dynamic
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Python Enhancement Proposals (PEPs)
 
|-
! scope="row" | [[R (programming language)|R]]
! [[AutoHotkey]]
| <!-- Original purpose --> Application, statistics
| none
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
|
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Racket (programming language)|Racket]]
! [[Ateji PX]]
| <!-- Original purpose --> Education, general, scripting
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| explicit
| <!-- Functional --> {{yes}}
| name-based
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[Modular programming|Modular]], logic, meta
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Raku (programming language)|Raku]]
! [[BASIC]]
| <!-- Original purpose --> Scripting, text processing, glue
| varies by dialect
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
|
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented, array, lazy evaluation, multiple dispatch, metaprogramming
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[REALbasic]]
! [[BLISS (programming language)|BLISS]]
| <!-- Original purpose --> Application
| none
| <!-- Imperative --> {{no}}
| n/a
| <!-- Object-oriented --> {{no}}
| n/a
| <!-- Functional --> {{no}}
| n/a
| <!-- Procedural --> {{yes}}
| n/a
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
 
|-
! scope="row" | [[BeanShellRebol]]
| <!-- Original purpose --> Distributed
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
| name-based
| <!-- Procedural --> {{yes}}
| dynamic
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> [[dialecting|Dialected]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[REXX]]
! [[Boo (programming language)|Boo]]
| <!-- Original purpose --> Scripting
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}} ([[NetRexx]] and [[Object REXX]] dialects)
| implicit with optional explicit typing
| <!-- Functional --> {{no}}
|
| <!-- Procedural --> {{yes}}
| static with optional dynamic typing
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1996 (ANSI X3.274-1996)
 
|-
! scope="row" | [[IBM RPG|RPG]]
! [[C (programming language)|C]]
| <!-- Original purpose --> Application, system
| strong
| <!-- Imperative --> {{yes}}
| unsafe
| <!-- Object-oriented --> {{no}}
| explicit
| <!-- Functional --> {{no}}
| name-based
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Ring (programming language)|Ring]]
! [[C++]] ([[ISO/IEC 14882]])
| <!-- Original purpose --> Application
| strong
| <!-- Imperative --> {{yes}}
| unsafe
| <!-- Object-oriented --> {{yes}}
| explicit
| <!-- Functional --> {{yes}}
| name-based
| <!-- Procedural --> {{yes}}
| static<ref group=TS>with optional dynamic type casting (see [[dynamic cast]])</ref>
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> metaprogramming, declarative, [[natural-language programming|natural-language]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[C SharpRuby (programming language)|C#Ruby]]
| <!-- Original purpose --> Application, scripting, web
| strong
| <!-- Imperative --> {{yes}}
| safe<ref group=TS>Safe, but supports unsafe code through an explicit declaration</ref>
| <!-- Object-oriented --> {{yes}}
| explicit
| <!-- Functional --> {{yes}}
| name-based
| <!-- Procedural --> {{no}}
| static<ref group=TS>with optional dynamic type (see [[C Sharp syntax#Dynamic|dynamic member lookup]])</ref>
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented
| <!-- Standardized? --> {{yes}}<br/>2011(JIS X 3017), 2012(ISO/IEC 30170)
 
|-
! scope="row" | [[CleanRust (programming language)|CleanRust]]
| <!-- Original purpose --> Application, server-side, system, web
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{maybe|Can be viewed as}}<ref>{{Cite web|url=https://doc.rust-lang.org/book/ch17-00-oop.html|title=Object-Oriented Programming Features|website=doc.rust-lang.org}}</ref>
| implicit
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}<ref>{{cite book |last1=Klabnik |first1=Steve |last2=Nichols |first2=Carol |title=The Rust Programming Language |url=https://doc.rust-lang.org/book/title-page.html |chapter=Macros |chapter-url=https://doc.rust-lang.org/book/ch19-06-macros.html}}</ref>
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}} standard by the official Rust releases
 
|-
! scope="row" | [[S (programming language)|S]]
! [[Clojure]]
| <!-- Original purpose --> Application, statistics
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| implicit with optional explicit typing
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| dynamic
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[COBOLS-Lang]]
| <!-- Original purpose --> Application, numerical, scripting
| strong
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{no}}
|
| <!-- Functional --> {{no}}
|
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Scala (programming language)|Scala]]
! [[ColdFusion Markup Language|ColdFusion]](CFML)
| <!-- Original purpose --> Application, general, parallel, distributed, web
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| implicit
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{no}}
| dynamic
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Data-oriented programming, metaprogramming
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Scala Language Specification (SLS)
 
|-
! scope="row" | [[Scheme (programming language)|Scheme]]
! [[Common Lisp|Common&nbsp;Lisp]]
| <!-- Original purpose --> Education, general
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{no}}
| implicit with optional explicit typing
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{no}}
| dynamic
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> meta, extensible-syntax
| <!-- Standardized? --> {{maybe|De facto}}<br/>1975-2013, R<sup>0</sup>RS, R<sup>1</sup>RS, R<sup>2</sup>RS, R<sup>3</sup>RS, R<sup>4</sup>RS, R<sup>5</sup>RS, R<sup>6</sup>RS, R<sup>7</sup>RS Small Edition<ref>{{Cite web|url=https://standards.scheme.org/|title=Scheme Standards|website=standards.scheme.org}}</ref><ref>{{Cite web|url=https://standards.scheme.org/early/|title=Scheme Standards|website=standards.scheme.org}}</ref>
 
|-
! scope="row" | [[Seed7]]
! [[Curl (programming language)|Curl]]
| <!-- Original purpose --> Application, general, scripting, web
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{no}}
| name-based
| <!-- Procedural --> {{no}}
|
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Multi-paradigm, extensible, structured
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[CythonSimula]]
| <!-- Original purpose --> Education, general
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| implicit with optional explicit typing
| <!-- Functional --> {{no}}
| name-based (extension types) and property-based (Python)
| <!-- Procedural --> {{no}}
| dynamic with optional static typing
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[discrete event simulation]], [[multi-threaded]] (quasi-parallel) program execution
| <!-- Standardized? --> {{yes}}<br/>1968
 
|-
! scope="row" | [[Microsoft Small Basic|Small Basic]]
! [[D (programming language)|D]]
| <!-- Original purpose --> Application, education, games
| strong
| <!-- Imperative --> {{yes}}
| unsafe<ref group=TS name=r2>It is almost safe, unsafe features are not commonly used.</ref>
| <!-- Object-oriented --> {{no}}
| explicit
| <!-- Functional --> {{no}}
| name-based
| <!-- Procedural --> {{no}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[component-oriented programming|Component-oriented]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Smalltalk]]
! [[Dylan (programming language)|Dylan]]
| <!-- Original purpose --> Application, general, business, artificial intelligence, education, web
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| dynamic
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, declarative
| <!-- Standardized? --> {{yes}}<br/>1998, ANSI
 
|-
! scope="row" | [[SNOBOL]]
! [[Eiffel (programming language)|Eiffel]]
| <!-- Original purpose --> Text processing
| strong
| <!-- Imperative --> {{no}}
| safe
| <!-- Object-oriented --> {{no}}
|
| <!-- Functional --> {{no}}
| name-based
| <!-- Procedural --> {{no}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
 
|-
! scope="row" | [[Standard ML]]
! [[Erlang (programming language)|Erlang]]
| <!-- Original purpose --> Application
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{no}}
| implicit
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{no}}
| dynamic
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1997, SML '97<ref>{{Cite web|url=http://www.smlnj.org/sml97.html|title=SML '97|website=www.smlnj.org}}</ref>
 
|-
! scope="row" | [[F SharpSwift (programming language)|F#Swift]]
| <!-- Original purpose --> Application, general
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| implicit
| <!-- Functional --> {{yes}}
| name-based
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, declarative, [[Protocol (object-oriented programming)|protocol-oriented]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Tcl]]
! [[Forth (programming language)|Forth]]
| <!-- Original purpose --> Application, scripting, web
| none
| <!-- Imperative --> {{yes}}
| n/a
| <!-- Object-oriented --> {{yes}}
| n/a
| <!-- Functional --> {{yes}}
| n/a
| <!-- Procedural --> {{yes}}
| n/a
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[V (programming language)|V (Vlang)]]
! [[Fortran]]
| <!-- Original purpose --> Application, general, system, game, web, server-side
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{maybe|Can be viewed as}}
| explicit<!-- this is a technicality and should be explained -->
| <!-- Functional --> {{maybe|Can be viewed as}}
| name-based
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Visual Basic (classic)|Visual Basic]]
! [[Gambas]]
| <!-- Original purpose --> Application, RAD, education, business, general, (Includes VBA), office automation
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| explicit
| <!-- Functional --> {{no}}
| name-based
| <!-- Procedural --> {{yes}}
|
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Component-oriented
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | {{nowrap|[[Visual Basic .NET]]}}
! [[Go (programming language)|Go]]<ref>[http://golang.org/doc/go_spec.html The Go Programming Language Specification]</ref>
| <!-- Original purpose --> Application, RAD, education, web, business, general
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| implicit with optional explicit typing
| <!-- Functional --> {{yes}}
| property-based
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Structured, concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Visual FoxPro]]
! [[Gosu (programming language)|Gosu]]
| <!-- Original purpose --> Application
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| partially implicit (local type inference)
| <!-- Functional --> {{no}}
| name-based (subclassing) and property-based (structural)
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Data-centric, logic
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Visual Prolog]]
! [[GraphTalk]]
| <!-- Original purpose --> Application
| weak
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{no}}
|
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Declarative, logic
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Wolfram Language]]
! [[Groovy (programming language)|Groovy]]
| <!-- Original purpose --> Symbolic language
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{no}}
| implicit with optional explicit typing
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| dynamic
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic, distributed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[HarbourXL (programming language)|HarbourXL]]
| <!-- Original purpose -->
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| implicit with optional explicit typing
| <!-- Functional --> {{no}}
|
| <!-- Procedural --> {{no}}
| dynamic
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[concept programming]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Xojo]]
! [[Haskell (programming language)|Haskell]]
| <!-- Original purpose --> Application, RAD, general, web
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{yes}}
| implicit with optional explicit typing
| <!-- Functional --> {{no}}
| property-based
| <!-- Procedural --> {{yes}}
| static
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[XPath]]/[[XQuery]]
! [[Io (programming language)|Io]]
| <!-- Original purpose --> Databases, data processing, scripting
| strong
| <!-- Imperative --> {{no}}
|
| <!-- Object-oriented --> {{no}}
|
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{no}}
| dynamic
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[Tree (data structure)|Tree-oriented]]
| <!-- Standardized? --> {{yes}}<br/>1999 W3C XPath 1, 2010 W3C XQuery 1, 2014 W3C XPath/XQuery 3.0
 
|-
! scope="row" | [[Zeek]]
! [[J (programming language)|J]]
| <!-- Original purpose --> Domain-specific, application
| strong
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{no}}
|
| <!-- Functional --> {{no}}
|
| <!-- Procedural --> {{no}}
| dynamic
| <!-- Generic --> {{no}}
|-
| <!-- Reflective --> {{no}}
! [[Java (programming language)|Java]]
| <!-- Other paradigms -->
| strong
| <!-- Standardized? --> {{no}}
| safe<ref>Sheng Liang, Gilad Bracha. [http://doi.acm.org/10.1145/286942.286945 Dynamic class loading in the Java virtual machine]. Volume 33, Issue 10 of ACM SIGPLAN Notices, October 1998.</ref>
 
| explicit
| name-based
| static
|-
! scope="row" | [[Zig (programming language)|Zig]]
! [[JavaScript]]
| <!-- Original purpose --> Application, general, system
| weak
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{no}}
| implicit
| <!-- Functional --> {{yes}}
|
| <!-- Procedural --> {{yes}}
| dynamic
| <!-- Generic --> {{yes}}
|-
| <!-- Reflective --> {{yes}}
! [[Joy (programming language)|Joy]]
| <!-- Other paradigms --> Concurrent
| strong
| <!-- Standardized? --> {{no}}
| safe
 
|
|
| dynamic
|-
! [[Lua (programming language)|Lua]]
| weak
| safe
| implicit
|
| dynamic
|-
! [[Mathematica]]
| strong
|
|
|
| dynamic
|-
! [[MATLAB|MATLAB M-code]]
|
|
|
|
| dynamic
|-
! [[Modula-2]]
| strong
| unsafe<ref group=TS name=r2 />
| explicit
| name-based
| static
|-
! [[Modula-3]]
| strong
| unsafe<ref group=TS name=r2 />
| explicit
| property-based
| static
|-
! [[Oberon (programming language)|Oberon]]
| strong
| safe
| explicit
| name-based
| static and partially dynamic<ref group=TS>dynamic checking of type extensions i.e. inherited types</ref>
|-
! scope="row" | [[Z shell|Zsh]]
! [[Objective-C]]
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| weak
| <!-- Imperative --> {{yes}}
| safe
| <!-- Object-oriented --> {{no}}
| explicit
| <!-- Functional --> {{no}}
| name-based (subclassing) and property-based (protocols)
| <!-- Procedural --> {{yes}}
| dynamic with optional static typing<ref>[http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocStaticBehavior.html Developer.apple.com]</ref>
| <!-- Generic --> {{no}}
|-
| <!-- Reflective --> {{no}}
! [[Objective Caml]]
| <!-- Other paradigms --> Loadable modules
| strong
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003"/>
| safe
| implicit with optional explicit typing
| property-based
| static
|-
! [[Object Pascal]] ([[Borland Delphi|Delphi]])
| strong
| safe
| explicit
| name-based
| static
|-
! [[Oxygene (programming language)|Oxygene]]
| strong
| unsafe
| implicit
|
| static
|-
! [[Oz (programming language)|Oz]]
| strong
| safe
| implicit
| property-based
| dynamic
|-
! [[Pascal (programming language)|Pascal]]
| strong
| unsafe<ref group=TS name=r2 />
| explicit
| name-based
| static
|-
! [[Perl 5]]
| weak
|
| implicit
|
| dynamic
|-
! [[Perl 6]]
|
|
| partially implicit<ref group=TS>explicit for static types</ref>
|
| dynamic with optional static typing
|-
! [[PHP]]
| weak
|
| implicit
|
| dynamic
|-
! [[Plus (programming language)|Plus]]
| strong
| safe
| explicit
| property-based
| static, dynamic (optional)
|-
! [[Prolog]]
| strong
|
|
|
| dynamic
|-
! [[Pure (programming language)|Pure]]
|
|
|
|
| dynamic
|-
! [[Python (programming language)|Python]]
| strong
| safe
| implicit
| property-based
| dynamic
|-
! [[REBOL]]
| strong
| safe
| implicit
|
| dynamic
|-
! [[Ruby (programming language)|Ruby]]
| strong
| safe
| implicit
| property-based
| dynamic
|-
! [[Rust (programming language)|Rust]]
| strong
| safe
| implicit with optional explicit typing
|
| static with optional dynamic typing
|-
! [[S (programming language)|S]]
| strong
|
|
|
| dynamic
|-
! [[S-Lang (programming language)|S-Lang]]
| strong
| safe
| implicit
|
| dynamic
|-
! [[Scala (programming language)|Scala]]
| strong
| safe
| partially implicit (local type inference)
| name-based (subclassing) and property-based (structural)
| static
|-
! [[Scheme (programming language)|Scheme]]
| strong
|
| implicit
|
| dynamic (latent)
|-
! [[Simula]]
| strong
| safe
|
|
| static<ref group=TS>optional for formal and virtual procedures</ref>
|-
! [[Smalltalk]]
| strong
| safe
| implicit
|
| dynamic
|-
! [[Standard ML]]
| strong
| safe
| implicit with optional explicit typing
| property-based
| static
|-
! [[Tcl]]
|
|
|
|
| dynamic
|-
! [[Visual Basic|Visual&nbsp;Basic]]
| strong
| safe
| implicit with optional explicit typing
| name-based
| static
|-
! [[Visual Basic .NET|Visual&nbsp;Basic&nbsp;.NET]]
| strong
| unsafe<ref group=TS name=r2 />
| explicit
|
| static
|-
! [[Visual Prolog]]
| strong
| safe
| partially implicit
| name-based
| static
|-
! [[Windows PowerShell]]
| strong
| safe
| implicit
|
| dynamic
|-
! [[XL (programming language)|XL]]
| strong
| safe
|
| name-based
| static
|-class="sortbottom"
! Language
! [[Type system#Strong and weak typing|Type strength]]
! [[Type system#Safely and unsafely typed systems|Type safety]]
! [[Type_system#Explicit_or_implicit_declaration_and_inference|Expression of types]]
! [[Type system#Compatibility: equivalence and subtyping|Compatibility among composite types]]
! [[Type_system#Type_checking|Type checking]]
|}
 
==Type systems==
{{Reflist|group=TS}}
{{main|Comparison of programming languages by type system}}
 
== Failsafe I/O and system calls ==
Most programming languages will print an [[error message]] or throw an [[exception handling|exception]] if an [[input/output]] operation or other [[system call]] (e.g., [[chmod]], [[kill (Unix)|kill]]) fails, unless the programmer has explicitly arranged for different handling of these events. Thus, these languages [[failsafe|fail safely]] in this regard.
 
Some (mostly older) languages require that programmers explicitly add checks for these kinds of errors. Psychologically, different [[List of cognitive biases|cognitive biases]] (e.g., [[optimism bias]]) may affect novices and experts alike and lead them to skip these checks. This can lead to [[software bug|erroneous behavior]].
Most programming languages will print an [[error message]] and/or throw an
[[exception handling|exception]] if an [[input/output]] operation or other
[[system call]] (e.g., [[chmod]], [[kill (Unix)|kill]]) fails, unless the
programmer has explicitly arranged for different handling of these events.
Thus, these languages [[failsafe|fail safely]] in this regard.
 
'''Failsafe I/O''' is a feature of [[1C:Enterprise programming language|1C:Enterprise]], [[Ada (programming language)|Ada]] (exceptions), [[ALGOL]] (exceptions or return value depending on function), [[Ballerina (programming language)|Ballerina]], [[C Sharp (programming language)|C#]], [[Common Lisp]] ("conditions and restarts" system), [[Curry (programming language)|Curry]], [[D (programming language)|D]] (throwing on failure),<ref>{{Cite web|url=https://dlang.org/phobos/std_stdio.html|title=std.stdio - D Programming Language|website=dlang.org}}</ref> [[Erlang (programming language)|Erlang]], [[Fortran]], [[Go (programming language)|Go]] (unless result explicitly ignored), [[Gosu (programming language)|Gosu]], [[Harbour (programming language)|Harbour]], [[Haskell]], [[ISLISP]], [[Java (programming language)|Java]], [[Julia (programming language)|Julia]], [[Kotlin (programming language)|Kotlin]], [[LabVIEW]], [[Mathematica]], [[Objective-C]] (exceptions), [[OCaml]] (exceptions), [[OpenLisp]], [[PHP]], [[Python (programming language)|Python]], [[Raku (programming language)|Raku]], [[Rebol]], [[Rexx]] (with optional '''signal on'''... trap handling), [[Ring (programming language)|Ring]], [[Ruby (programming language)|Ruby]], [[Rust (programming language)|Rust]] (unless result explicitly ignored), [[Scala (programming language)|Scala]],<ref>Scala runs on the Java Virtual Machine from which it inherits the runtime exception handling.</ref> [[Smalltalk]], [[Standard ML]] {{citation needed|date=February 2011}}, [[Swift (programming language)|Swift ≥ 2.0]] (exceptions), [[Tcl]], [[Visual Basic (classic)|Visual Basic]], [[Visual Basic (.NET)|Visual Basic .NET]], [[Visual Prolog]], [[Wolfram Language]], [[Xojo]], [[XPath]]/[[XQuery]] (exceptions), and [[Zeek]].
Some (mostly older) languages require that the programmer explicitly add
checks for these kinds of errors. It is common for novice programmers to
forget to add these checks, and even experts occasionally do so—these
omissions can lead to [[software bug|erroneous behavior]].
 
'''No Failsafe I/O''':
{| class="wikitable sortable"
[[AutoHotkey]] (global ErrorLevel must be explicitly checked), [[C (programming language)|C]],<ref name="VS">[[GNU compiler collection|gcc]] can warn on unchecked [[errno.h|errno]]. Newer versions of [[Visual Studio]] usually throw exceptions on failed I/O when using [[C file input/output|stdio]].</ref> [[COBOL]], [[Eiffel (programming language)|Eiffel]] (it actually depends on the library and it is not defined by the language), [[GLBasic]] (will generally cause program to crash), [[IBM RPG|RPG]], [[Lua (programming language)|Lua]] (some functions do not warn or throw exceptions), and [[Perl]].<ref>Considerable error checking can be enabled optionally, but by default Perl is not failsafe.</ref>
|-
! Language
! Failsafe I/O
|-
! [[Ada (programming language)|Ada]]
| {{yes}} (exceptions)
|-
! [[AutoHotkey]]
| {{no}} (global ErrorLevel must be explicitly checked)
|-
! [[C (programming language)|C]]
| {{no}}<ref group="FSIO">[[GNU compiler collection|gcc]] can warn on unchecked error status. Newer versions of [[Visual Studio]] usually throw exceptions on failed I/O when using stdio.</ref>
|-
! [[C++]]
| {{no}}<ref name="VS" group="FSIO">[[GNU compiler collection|g++]] can warn on unchecked error status. Newer versions of [[Visual Studio]] usually throw exceptions on failed I/O when using stdio.</ref>
|-
! [[C Sharp (programming language)|C#]]
| {{yes}}
|-
! [[Common Lisp]]
| {{yes}}
|-
! [[D (programming language)|D]]
| {{yes}} {{citation needed|date=February 2011}}
|-
! [[Erlang (programming language)|Erlang]]
| {{yes}}
|-
! [[Gosu (programming language)|Gosu]]
| {{yes}}
|-
! [[Harbour (programming language)|Harbour]]
| {{yes}}
|-
! [[Haskell (programming language)|Haskell]]
| {{yes}}
|-
! [[Java (programming language)|Java]]
| {{yes}}
|-
! [[Lua (programming language)|Lua]]
| {{no}} (some functions do not warn or throw exceptions)
|-
! [[Mathematica]]
| {{unknown}}
|-
! [[Objective Caml]]
| {{yes}} (exceptions)
|-
! [[Objective-C]]
| {{yes}} (exceptions)
|-
! [[Object Pascal]] ([[Borland Delphi|Delphi]])
| {{some}}
|-
! [[Perl]]
| {{no}}<ref group="FSIO">Considerable error checking can be enabled optionally, but by default Perl is not failsafe.</ref>
|-
! [[PHP]]
| {{yes}}
|-
! [[Python (programming language)|Python]]
| {{yes}}
|-
! [[REBOL]]
| {{yes}}
|-
! [[Ruby (programming language)|Ruby]]
| {{yes}}
|-
! [[Rust (programming language)|Rust]]
| {{yes}}
|-
! [[S (programming language)|S]]
| {{unknown}}
|-
! [[Scala (programming language)|Scala]]
| {{yes}} {{citation needed|date=February 2011}}
|-
! [[Standard ML]]
| {{yes}} {{citation needed|date=February 2011}}
|-
! [[Tcl]]
| {{yes}}
|-
! [[Visual Basic|Visual&nbsp;Basic]]
| {{yes}}
|-
! [[Visual Prolog]]
| {{yes}}
|-class="sortbottom"
! Language
! Failsafe I/O
|}
 
Some I/O checking is built in [[C++]] ([[Input/output (C++)|STL iostreams]] throw on failure but C APIs like [[C file input/output|stdio]] or [[C POSIX library|POSIX]] do not)<ref name="VS"/> and [[Object Pascal]], in [[Bash (Unix shell)|Bash]]<ref><code>set -e</code> enables termination if any unchecked [[exit status]] is nonzero.</ref> it is optional.
{{Reflist|group=FSIO}}
 
==Expressiveness==
{| id="Expressiveness" class="wikitable sortable" alignstyle="float:right;"
|-
! scope="col" | Language
! Language !! Statements ratio<ref>Data from [[Code Complete]]. The ''Statements ratio'' column "shows typical ratios of source statements in several high-level languages to the equivalent code in C. A higher ratio means that each line of code in the language listed accomplishes more than does each line of code in C.</ref>
! scope="col" | Statements ratio<ref>Data from {{cite book |last=McConnell |first=Steve |date=30 November 2009 |url=https://books.google.com/books?id=3JfE7TGUwvgC&pg=PT100 |title=Code Complete |page=100 |publisher=Microsoft Press |isbn=9780735636972}} The ''Statements ratio'' column "shows typical ratios of source statements in several high-level languages to the equivalent code in C. A higher ratio means that each line of code in the language listed accomplishes more than does each line of code in C.</ref>
! Lines ratio<ref>The ratio of line count tests won by each language to the number won by C when using the ''Compare to'' feature at [http://shootout.alioth.debian.org/debian/c.php Shootout.alioth.debian.org]. Last updated May, 2006. C gcc was used for C, C++ g++ was used for C++, FORTRAN G95 was used for FORTRAN, Java JDK Server was used for Java, and Smalltalk GST was used for Smalltalk.</ref>
! scope="col" | Lines ratio<ref>The ratio of line count tests won by each language to the number won by C when using the ''Compare to'' feature at {{cite web |url=https://blog.wolfram.com/2012/11/14/code-length-measured-in-14-languages/ |title=Code Length Measured in 14 Languages |last=McLoone |first=Jon |date=November 14, 2012 |archive-url=https://web.archive.org/web/20121119043607/https://blog.wolfram.com/2012/11/14/code-length-measured-in-14-languages/ |archive-date=2012-11-19}} C gcc was used for C, C++ g++ was used for C++, FORTRAN G95 was used for FORTRAN, Java JDK Server was used for Java, and Smalltalk GST was used for Smalltalk.</ref>
|-
| C || 1 || 1
|-
| C++ || 2.5 || 1
Line 1,204 ⟶ 1,733:
| Smalltalk || 6 || 6.25
|-
| Python || 6 || 6.5
|}
 
The literature on programming languages contains an abundance of informal claims about their relative [[Expressive power (computer science)|expressive power]], but there is no framework for formalizing such statements nor for deriving interesting consequences.<ref>From{{cite [http://citeseerconference |citeseerx=10.ist1.psu1.edu/cache/papers/cs/633/ftp:zSzzSzftp51.cs.indiana.eduzSzpubzSzscheme-repositoryzSzdoczSzpubszSzexpress.pdf/felleisen90expressive.pdf4656 |title=On the Expressive Power of Programming Languages], |first=Matthias |last=Felleisen, |conference=ESOP '90 3rd European Symposium on Programming.}}</ref> This table provides two measures of expressiveness from two different sources. An additional measure of expressiveness, in GZip bytes, can be found on the Computer Language Benchmarks Game.<ref>[http{{Cite web|url=https://shootoutbenchmarksgame-team.aliothpages.debian.orgnet/u32benchmarksgame/whichhow-languageprograms-isare-bestmeasured.php?xfullcpuhtml#source-code|title=0&xmemHow programs are measured |website=0&xloc=1&binarytrees=1&chameneosredux=1&fannkuch=1&fasta=1&knucleotide=1&mandelbrot=1&meteor=1&nbody=1&pidigits=1&regexdna=1&revcomp=1&spectralnorm=1&threadring=1&calc=calculate Computer Language Benchmarks Game ranking]|access-date=2018-05-29}}</ref>
{{-}}
 
<br clear="all" />
 
==Benchmarks==
[[File:Barplot language speeds (Benchmarks Game Mandelbrot).svg|thumb|Barplot of log-time to produce a 1600² Mandelbrot<ref>{{Cite book|last=Mandelbrot|first=Benoit B. |title=The fractal geometry of nature|date=1982|isbn=0-7167-1186-9|edition=Revised |___location=San Francisco|oclc=7876824}}</ref> as reported in ''The Benchmarks Game''<ref>{{Cite web|title=Mandelbrot |website=Computer Language Benchmarks Game|url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/mandelbrot.html|access-date=2021-07-09}}</ref>]]
[[benchmark (computing)|Benchmarks]] are designed to mimic a particular type of workload on a component or system. The computer programs used for compiling some of the benchmark data in this section may not have been fully optimized, and the relevance of the data is disputed. The most accurate benchmarks are those that are customized to your particular situation. Other people's benchmark data may have some value to others, but proper interpretation brings many [[benchmark (computing)#Challenges|challenges]]. See [http://shootout.alioth.debian.org/flawed-benchmarks.php this] page about flawed benchmarks and comparisons. [http://shootout.alioth.debian.org/ The Computer Language Benchmarks Game] site contains a large number of micro-benchmarks of reader-contributed code snippets, with an interface that generates various charts and tables comparing specific programming languages and types of tests.
 
[[benchmark (computing)|Benchmarks]] are designed to mimic a particular type of workload on a component or system. The computer programs used for compiling some of the benchmark data in this section may not have been fully optimized, and the relevance of the data is disputed. The most accurate benchmarks are those that are customized to your particular situation. Other people's benchmark data may have some value to others, but proper interpretation brings many [[benchmark (computing)#Challenges|challenges]]. [[The Computer Language Benchmarks Game]] site warns against over-generalizing from benchmark data, but contains a large number of micro-benchmarks of reader-contributed code snippets, with an interface that generates various charts and tables comparing specific programming languages and types of tests.<ref>{{Cite web |url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/dont-jump-to-conclusions.html |title=The Ultimate Benchmark |website=The Computer Language Benchmarks Game |access-date=2018-05-29}}</ref>
==Time line of specific language comparisons==
 
* 1973 - [http://comjnl.oxfordjournals.org/cgi/content/abstract/17/4/325 Comparative Notes on Algol 68 and PL/I] - S. H. Valentine - February 1973
==Timeline of specific language comparisons==
* 1976 - Evaluation of [[ALGOL 68]], [[JOVIAL]] J3B, [[Pascal (programming language)|Pascal]], [[Simula]] 67, and [[TACPOL]] Versus TINMAN - Requirements for a Common High Order Programming Language. <!-- [http://www.dtic.mil/srch/doc?collection=t2&id=ADA037637 Report Number: 1021-14] -->
* 1974 – Comparative Notes on Algol 68 and PL/I<ref>{{cite journal |last1=Valentine |first1=S. H. |date=November 1974 |title=Comparative Notes on Algol 68 and PL/I |journal=The Computer Journal |volume=17 |issue=4 |pages=325–331 |doi=10.1093/comjnl/17.4.325 |doi-access=free}}</ref> – S. H. Valentine – November 1974
* 1977 - [http://comjnl.oxfordjournals.org/cgi/content/abstract/21/4/316 A comparison of PASCAL and ALGOL 68][http://dare.ubvu.vu.nl/bitstream/1871/2609/1/11054.pdf] - [[Andrew S. Tanenbaum]] - June 1977.
* 1976 – Evaluation of [[ALGOL 68]], [[JOVIAL]] J3B, [[Pascal (programming language)|Pascal]], [[Simula]] 67, and [[TACPOL]] Versus TINMAN – Requirements for a Common High Order Programming Language.<!-- [https://web.archive.org/web/20170523233517/http://www.dtic.mil/srch/doc?collection=t2&id=ADA037637 Report Number: 1021-14] -->
* 1993 - [http://cm.bell-labs.com/cm/cs/who/dmr/hopl.html Five Little Languages and How They Grew] - [[BLISS]], [[Pascal (programming language)|Pascal]], [[ALGOL 68]], [[BCPL]] & [[C (programming language)|C]] - [[Dennis M. Ritchie]] - April 1993.
* 1977 – A comparison of PASCAL and ALGOL 68<ref>{{Cite web|url=http://dare.ubvu.vu.nl/bitstream/1871/2609/1/11054.pdf|title=Vrije Universiteit Amsterdam}}</ref> – [[Andrew S. Tanenbaum]] – June 1977.
* 2009 - [http://www.cowlark.com/2009-11-15-go On Go - oh, go on] - How well will Google's [[Go (programming language)|Go]] stand up against Brand X programming language? - David Given - November 2009
* 1993 – Five Little Languages and How They Grew – [[BLISS]], [[Pascal (programming language)|Pascal]], [[ALGOL 68]], [[BCPL]] & [[C (programming language)|C]] – [[Dennis M. Ritchie]] – April 1993.
* 2009 – On Go – oh, go on – How well will Google's [[Go (programming language)|Go]] stand up against Brand X programming language? – David Given – November 2009
 
==See also==
*[[Alphabetical{{Category listtree all|Lists of programming languages]]|mode=all|depth=2}}
 
*[[Comparison of basic instructions of programming languages]]
* [[Comparison of programming paradigmslanguages (basic instructions)]]
* [[EducationalComparison of programming languagelanguages (syntax)]]
* [[Comparison of integrated development environments]]
*[[Hello world program examples]]
* [[Comparison of multi-paradigm programming languages]]
*[[Measuring programming language popularity]]
* [[ProgrammingTIOBE languageindex]]
 
==References==
{{Reflist|230em}}
 
==Further reading==
* {{cite book |last=Cezzar |first=Ruknet |year=1995 |title=A Guide to Programming Languages: Overview and Comparison |firstpublisher=Ruknet|last=CezzarArtech House |isbn=978-08900681200-89006-812-0 |url-access=registration |url=https://archive.org/details/authenticationsy0000oppl}}
 
==External links==
* [http://99-bottles-of-beer.net/ 99-bottles-of-beer.net] — one program in over a thousand variations and multiple languages.
* [http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html The speed, size and dependability of programming languages] — charts and narrative based on The Computer Language Benchmarks Game data.
* [http://shootout.alioth.debian.org/u32/shapes.php Shapes: Source Code Size and Run Time] - charts based on current Benchmarks Game data.
* [http://www.scriptol.com/programming/choose.php Comparison of syntaxes] with sample codes.
* [http://rigaux.org/language-study/syntax-across-languages.html Syntax Across Languages]
* [http://www.jvoegele.com/software/langcomp.html Programming Language Comparison] — a comparison of nine programming languages and related information.
* [http://merd.sourceforge.net/pixel/language-study/scripting-language/ Scriptometer scores] — multiple comparisons of 26 programming languages.
* {{PDFlink|[http://faculty.ed.umuc.edu/~meinkej/inss690/carlson.pdf Comparing Web Languages in Theory and Practice]}} — research to fulfill Kristofer J. Carlson's master's degree requirements.
* [http://pleac.sourceforge.net/ PLEAC] — Programming Language Examples Alike Cookbook.
* [http://en.wikibooks.org/wiki/AnyLang_Programming_Language_Comparison AnyLang Programming Language Comparison] - compares common operations across languages.
* [http://www.futurechips.org/tips-for-power-coders/python-compute-bound-workloads.html Python vs C in compute-bound workloads]
* [http://www.ohloh.net/languages OHLOH Language Statistics] — gives an indication of the popularity of programming languages in open-source projects.
* [http://hhh.gavilan.edu/dvantassel/history/history.html History of Programming Language Statements] — history and comparison of programming languages.
 
{{DEFAULTSORT:Comparison of programmingProgramming languages}}
[[Category:Programming language comparisons]]
 
[[Category:Programming language comparisons| ]]
[[ko:프로그래밍 언어의 비교]]
[[hi:प्रोग्रामिंग भाषाओं की तुलना]]
[[ms:Perbandingan bahasa-bahasa pengaturcaraan]]
[[ja:プログラミング言語の比較]]
[[pt:Comparação entre linguagens de programação]]
[[ru:Сравнение языков программирования]]