Comparison of programming languages: Difference between revisions

Content deleted Content added
m Removed unnecessary Template:DEFAULTSORT. Sorted listing in Category:Programming language comparisons to blank (appears at top of list).
Citation bot (talk | contribs)
Added date. | Use this bot. Report bugs. | Suggested by Jay8g | #UCB_toolbar
 
(445 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 may use dozens of languages in a 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. -->
{{sticky header}}
{|class="wikitable sortable" style="text-align:center;
{{sort-under}}
{|class="wikitable sortable sort-under sticky-header" style="text-align:center;"
|-
! scope="col" | Language
! scope="col" | Original purpose
! scope="col" | [[Imperative programming|Imperative]]
! scope="col" | [[Object-oriented programming|Object-oriented]]
! 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]]
 
|-
|- align="center"
! scope="row" | [[1C:Enterprise programming language]]
! Language
| <!-- Original purpose --> [[Application software development|Application]], [[Rapid application development|RAD]], business, [[General-purpose programming language|general]], [[Web development|web]], [[Mobile app development|mobile]]
! Intended use <!--What this was to be used for originally. Not what it is used for now, which is hard to verify.-->
| <!-- [[imperative programming|Imperative]] --> {{yes}}
!| [[object<!--oriented programming|Object-oriented]] --> {{no}}
| <!-- [[functional programming|Functional]] --> {{yes}}
| <!-- [[procedural programming|Procedural]] --> {{yes}}
| <!-- Generic --> {{yes}}
! [[generic programming|Generic]]
| <!-- [[reflective programming|Reflective]] --> {{yes}}
| <!-- Other paradigms --> [[Object-based]], Prototype-based programming
! [[event-driven programming|Event-driven]]
| <!-- Standardized? --> {{no}}
! Other [[programming paradigm|paradigm]](s)
! [[standardization|Standardized]]?
 
|-
|- align="center"
! scope="row" | [[ActionScript]] 3.0 <!-- Language -->
| <!-- Original purpose --> Application, [[client-side]], web
| Application, client-side, Web <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for ActionScript 3.0 -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther 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 -->
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{yes|1996}}, ECMA <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Ada (programming language)|Ada]] <!-- Language -->
| <!-- Original purpose --> Application, [[Embedded system|embedded]], [[Real-time computing|realtime]], [[System programming language|system]] <!-- Intended use -->
| <!-- Sparse matrix for AdaImperative --> {{yes}}
| <!-- 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}}<!-- Imperative -->
| {{Yes}}<!-- Object-orientedFunctional --> {{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>
| <!-- Functional -->
| <!-- Generic --> {{Yesyes}}<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-612.html Section 612: SubprogramsGeneric Units]</ref>
| <!-- ProceduralReflective --> {{no}}
|<!-- {{Yes}}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-129.html Section 129: GenericTasks Unitsand Synchronization]</ref> [[distributed programming|distributed]]<!-- Genericref>{{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>
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| [[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> imperative 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> <!-- Other paradigms -->
| {{yes|1983}}, 2005, 2012, ANSI, ISO, [[GOST]] 27831-88<ref>[http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf Vak.ru]</ref> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Aldor]] <!-- Language -->
| <!-- Original purpose --> Highly [[Domain-specific language|___domain-specific]], [[Computer algebra|symbolic computing]]
| Highly ___domain-specific, symbolic computing <!-- Intended use -->
| <!-- Sparse matrix for AldorImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[ALGOL 58]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for ALGOL 58 -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[ALGOL 60]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for ALGOL 60 -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes|1960}}<br/>1960, [[IFIP WG 2.1]], ISO<ref>[http{{Cite web|url=https://www.open-std.org/jtc1/sc22/docs/oldwgs/wg6.html |title=ISO/IEC 1538:1984]<JTC1/ref>SC22/WG6 <!-- Standardized? -Algol|website=www.open-std.org}}</ref>
 
|-
|- align="center"
! scope="row" | [[ALGOL 68]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for ALGOL 68 -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| concurrent <!-- Other paradigms -->
| {{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> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Ateji PX]] <!-- Language -->
| <!-- Original purpose --> Parallel application
| Parallel application <!-- Intended use -->
| <!-- Sparse matrix for Ateji PXImperative --> {{no}}
| <!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther paradigms --> [[pi calculus]]
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[pi calculus]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[APL (programming language)|APL]] <!-- Language -->
| <!-- Original purpose --> Application, [[data processing]]
| Application, data processing <!-- Intended use -->
| <!-- Sparse matrix for APLImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> [[array programming|Array-oriented]], [[tacit programming|tacit]]
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{yes}}<br/>1989, ISO
<!-- -------------------- -->
| [[array programming|array-oriented]], [[tacit programming|tacit]] <!-- Other paradigms -->
| {{yes|1989}}, ISO <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Assembly language]] <!-- Language -->
| <!-- Original purpose --> General
| [[General purpose programming language|General]] <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Assembly language -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> Any, syntax is usually highly specific, related to the target processor
| <!-- Reflective -->
| <!-- 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| any, syntax is usually highly specific, related to the target processor <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[AutoHotkey]] <!-- Language -->
| <!-- Original purpose --> GUI automation ([[Macro (computer science)#Application macros and scripting|macros]]), highly ___domain-specific <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for AutoHotkey -->
| <!-- Object-oriented --> {{yes}}<br/><ref>{{Cite web|url=https://www.autohotkey.com/docs/Objects.htm|title=Objects - Definition & Usage}}</ref>
| {{Yes}}<!-- Imperative -->
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[AutoIt]] <!-- Language -->
| <!-- Original purpose --> GUI automation (macros), highly ___domain-specific <!-- Intended use -->
| <!-- Sparse matrix for AutoItImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Ballerina (programming language)|Ballerina]]
! [[Bash (Unix shell)|Bash]] <!-- Language -->
| <!-- Original purpose --> Integration, agile, [[server-side]], general
| Shell, scripting <!-- Intended use -->
| <!-- Sparse matrix for BASICImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> Concurrent, transactional, statically and strongly typed, diagrammatic–visual
| <!-- Reflective -->
| <!-- 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Bash (Unix shell)|Bash]]
! [[BASIC]] <!-- Language -->
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| Application, education <!-- Intended use -->
| <!-- Sparse matrix for BASICImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- 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>
| {{yes|1983}}, [http://portal.acm.org/citation.cfm?id=988221 ANSI], ISO <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[BASIC]]
! [[BBj]] <!-- Language -->
| <!-- Original purpose --> Application, education
| Application, business, Web <!-- Intended use -->
| <!-- Sparse matrix for BBjImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{yes}}<br/>1983, ANSI, ISO, ECMA
 
|-
|- align="center"
! scope="row" | [[BeanShell]] <!-- Language -->
| <!-- Original purpose --> Application, scripting
| Application, scripting <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for BeanShell -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no|}}<br/>In progress}}, [[Java Community Process|JCP]]<ref>[http{{Cite web|url=https://jcp.org/en/jsr/detail?id=274|title=The JSRJava 274]</ref>Community Process(SM) Program <!-- Standardized?JSRs: Java Specification Requests -- detail JSR# 274|website=jcp.org}}</ref>
 
|-
|- align="center"
! scope="row" | [[BLISS]]
! [[BitC]] <!-- Language -->
| System <!-- IntendedOriginal usepurpose --> System
| <!-- Sparse matrix for BitCImperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[BlitzMax]]
! [[BLISS]] <!-- Language -->
| System <!-- IntendedOriginal usepurpose --> Application, game
| <!-- Sparse matrix for BLISSImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Boo (programming language)|Boo]]
! [[BlitzMax]] <!-- Language -->
| <!-- Original purpose --> Application, game scripting
| Application, game <!-- Intended use -->
| <!-- Sparse matrix for BlitzMaxImperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[BlueC (programming language)|BlueC]] <!-- Language -->
| <!-- 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
| Education <!-- Intended use -->
| <!-- Sparse matrix for BlueImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- 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>
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[C++]]
! [[Boo (programming language)|Boo]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application, system
| <!-- Sparse matrix for BooImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[C Sharp (programming language)|C#]]
! [[Bro (software)|Bro]] <!-- Language -->
| <!-- Original purpose --> Application, RAD, business, client-side, general, server-side, web, [[game programming]]
| ___domain-specific, application <!-- Intended use -->
| <!-- Sparse matrix for BroImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- 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>
| <!-- Object-oriented -->
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Concurrent, structured
| <!-- Standardized? --> {{yes}}<br/>2000, ECMA, ISO<ref>ECMA-334; ISO/IEC 23270:2006</ref>
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[CClarion (programming language)|CClarion]] <!-- Language -->
| <!-- Original purpose --> General, business, web
| Application, system,<ref>[http://cm.bell-labs.com/cm/cs/who/dmr/chist.html CM.bell-labs.com]</ref> general purpose, low-level operations <!-- Intended use -->
| <!-- Sparse matrix for CImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- Functional --> {{yes}}<ref>{{Cite web|url=https://www.softvelocity.com/|title=Clarion - Home|website=www.softvelocity.com}}</ref>
| <!-- Object-oriented -->
| <!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{unknown}}
| {{yes|1989}}, [[ANSI C|ANSI C89, ISO C90, ISO C99, ISO C11]]<ref>[http://www.open-std.org/JTC1/SC22/WG14/ ANSI C89, ISO/IEC 9899:1990, 1999, 2011]</ref> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Clean (programming language)|Clean]]
! [[C++]] <!-- Language -->
| Application, system <!-- IntendedOriginal usepurpose --> General
| <!-- Sparse matrix for C++Imperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
| {{yes|1998}}, ISO/IEC 1998, ISO/IEC 2003, ISO/IEC 2011<ref>[http://www.open-std.org/JTC1/SC22/WG21/ ISO/IEC 14882:1998, 2003, 2011]</ref> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Clojure]]
! [[C Sharp (programming language)|C#]] <!-- Language -->
| <!-- Original purpose --> General
| Application, RAD, business, client-side, general, server-side, Web <!-- Intended use -->
| <!-- Sparse matrix for C#Imperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- Procedural --> {{no}}
| {{Yes}}<ref>[http://www.codeproject.com/KB/cs/intro_functional_csharp.aspx Codeproject.com: Functional Programming in C# 3.0 using Lambda Expression]</ref> <!-- Functional -->
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| {{Yes}}<!-- ReflectiveOther paradigms --> Concurrent
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| structured, concurrent <!-- Other paradigms -->
| {{yes|2000}}, ECMA, ISO<ref>ECMA-334; ISO/IEC 23270:2006</ref> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[ClarionCLU (programming language)|ClarionCLU]] <!-- Language -->
| General, business, Web <!-- IntendedOriginal usepurpose --> General
| <!-- Sparse matrix for ClarionImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- Procedural --> {{yes}}
| {{Yes}}<ref>[http://www.softvelocity.com Softvelocity.com]</ref> <!-- Functional -->
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
|{{unknown}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[COBOL]]
! [[Clean (programming language)|Clean]] <!-- Language -->
| General <!-- IntendedOriginal usepurpose --> Application, business
| <!-- Sparse matrix for CleanImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{yes}}<br/>1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014, 2023
 
|- align="center"
! [[Clojure]] <!-- Language -->
| General <!-- Intended use -->
<!-- Sparse matrix for Clojure -->
| <!-- Imperative -->
| <!-- Object-oriented -->
| {{Yes}}<!-- Functional -->
| <!-- Procedural -->
| <!-- Generic -->
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| concurrent <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[CLUCobra (programming language)|CLUCobra]] <!-- Language -->
| <!-- Original purpose --> Application, business, general, web
| General <!-- Intended use -->
| <!-- Sparse matrix for CLUImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[COBOL]]ColdFusion <!--Markup Language|ColdFusion]] -->(CFML)
| Application, business <!-- IntendedOriginal usepurpose --> Web
| <!-- Sparse matrix for COBOLImperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{yes|ANSI X3.23 1968, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Common Lisp]]
! [[Cobra (programming language)|Cobra]] <!-- Language -->
| <!-- Original purpose --> General
| Application, business, general, Web <!-- Intended use -->
| <!-- Sparse matrix for CobraImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Extensible syntax, [https://github.com/equwal/CLAPL Array-oriented], [[Macro (computer science)#Syntactic macros|syntactic macros]], [[multiple dispatch]], concurrent
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{yes}}<br/>1994, ANSI
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[COMAL]] 80
! [[ColdFusion Markup Language|ColdFusion]] (CFML) <!-- Language -->
| Web <!-- IntendedOriginal usepurpose --> Education
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for ColdFusion(CFML) -->
| <!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Crystal (programming language)|Crystal]]
! [[Common Lisp]] <!-- Language -->
| General <!-- IntendedOriginal usepurpose --> General purpose
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Common Lisp -->
| <!-- Object-oriented --> {{yes}}<ref>{{Cite web|url=https://github.com/crystal-lang/crystal#why|title=Crystal|website=[[GitHub]]|date=2 November 2021}}</ref>
| {{Yes}}<!-- Imperative -->
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{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>
| {{Yes}}<!-- Procedural -->
| {{Yes}}<!-- GenericReflective --> {{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>
| {{Yes}}<!-- Reflective -->
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| extensible syntax, [[Macro (computer science)#Syntactic macros|syntactic macros]], [[multiple dispatch]]<!-- Other paradigms -->
| {{yes|1994}}, ANSI <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Curry (programming language)|Curry]]
! [[COMAL]] 80 <!-- Language -->
| Education <!-- IntendedOriginal usepurpose --> Application
| <!-- Sparse matrix for COMAL 80Imperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> [[lazy evaluation]], non-determinism
| <!-- Reflective -->
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Curry Language Report
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Cython]]
! Crystal 1.0.0 <!-- Language -->
| <!-- Original purpose --> Application, general, [[numerical computing]]
| Education <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Crystal 1.0.0 -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> [[aspect-oriented programming|Aspect-oriented]]
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[D (programming language)|D]]
! [[Cython]] <!-- Language -->
| <!-- Original purpose --> Application, system
| Application, general, numerical computing <!-- Intended use -->
| <!-- Sparse matrix for CythonImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Generative, concurrent
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[aspect-oriented programming|aspect-oriented]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[DDart (programming language)|DDart]] <!-- Language -->
| <!-- Original purpose --> Application, web, server-side, mobile, [[Internet of things|IoT]]
| Application, system <!-- Intended use -->
| <!-- Sparse matrix for DImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther paradigms --> Structured
| <!-- Event-drivenStandardized? --> {{yes}}<br/>ECMA-408 standard
<!-- -------------------- -->
| generative, concurrent <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Delphi (software)|Delphi]], [[Object Pascal]]
! [[Dart (programming language)|Dart]] <!-- Language -->
| <!-- Original purpose --> General purpose
| Application, Web <!-- Intended use -->
| <!-- Sparse matrix for DartImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| structured <!-- Other paradigms -->
| {{yes|Ecma-408 standard}} <!-- Standardized? -->
 
|- align="center"
! [[Dylan (programming language)|Dylan]] <!-- Language -->
| Application <!-- Intended use -->
<!-- Sparse matrix for Dylan -->
| <!-- Imperative -->
| {{Yes}}<!-- Object-oriented -->
| {{Yes}}<!-- Functional -->
| <!-- Procedural -->
| <!-- Generic -->
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --><br/> {{unknown}}
 
 
|- align="center"
|-
! [[Eiffel (programming language)|Eiffel]] <!-- Language -->
! scope="row" | [[Dylan (programming language)|Dylan]]
| Application <!-- Intended use -->
| <!-- SparseOriginal matrix for Eiffelpurpose --> Application
| {{Yes}}<!-- Imperative --> {{no}}
| {{Yes}}<!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| {{Yes}}<!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{yes|2005}}, ECMA, ISO<ref>ECMA-367; ISO/IEC 25436:2006</ref> <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[ElixirEiffel (programming language)|ElixirEiffel]] <!-- Language -->
| <!-- Original purpose --> General, application, business, client-side, server-side, web (EWF)
| Application, distributed <!-- Intended use -->
| <!-- Sparse matrix for ElixirImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- 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>
| <!-- Object-oriented -->
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- Reflective --> {{yes}} [http://se.inf.ethz.ch/old/people/leitner/erl_g Erl-G]
| <!-- Generic -->
| <!-- 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]
| <!-- Reflective -->
| <!-- Standardized? --> {{yes}}<br/>2005, ECMA, ISO<ref>ECMA-367; ISO/IEC 25436:2006</ref>
| <!-- Event-driven -->
<!-- -------------------- -->
| concurrent, [[distributed programming|distributed]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[ErlangELAN (programming language)|ErlangELAN]] <!-- Language -->
| <!-- Original purpose --> Education
| Application, distributed, telecom <!-- Intended use -->
| <!-- Sparse matrix for ErlangImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> [[Structured programming|Structured]], [[Top-down and bottom-up design|stepwise refinement]]
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| concurrent, [[distributed programming|distributed]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[EuphoriaElixir (programming language)|EuphoriaElixir]] <!-- Language -->
| <!-- Original purpose --> Application, [[Distributed computing|distributed]]
| Application<!-- Intended use -->
| <!-- Sparse matrix for EuphoriaImperative --> {{no}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Concurrent, distributed
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[FactorErlang (programming language)|FactorErlang]] <!-- Language -->
| <!-- IntendedOriginal usepurpose --> Application, distributed
| <!-- Sparse matrix for FactorImperative --> {{no}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Concurrent, distributed
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[stack-oriented programming language|stack-oriented]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[FalconEuphoria (programming language)|FalconEuphoria]] <!-- Language -->
| <!-- Original purpose --> Application
| General, Application <!-- Intended use -->
| <!-- Sparse matrix for FalconImperative --> {{no}}
| <!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| prototype OOP, message oriented, tabular programming <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[FPFactor (programming language)|FPFactor]] <!-- Language -->
| <!-- IntendedOriginal usepurpose --> General
| <!-- Sparse matrix for FPImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{maybe|Can be viewed as}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> [[stack-oriented programming|Stack-oriented]]
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
 
<!-- -------------------- -->
|-
! scope="row" | [[FP (programming language)|FP]]
| <!-- Original purpose -->
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[F Sharp (programming language)|F#]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application
| <!-- Sparse matrix for F#Imperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Forth (programming language)|Forth]] <!-- Language -->
| General <!-- IntendedOriginal usepurpose --> General
| <!-- Sparse matrix for ForthImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| can be viewed as<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Stack-oriented
| <!-- Event-drivenStandardized? --> {{yes}}<br/>1994, ANSI
<!-- -------------------- -->
| stack-oriented <!-- Other paradigms -->
| {{yes|1994}}, ANSI <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Fortran]] <!-- Language -->
| <!-- Original purpose --> Application, numerical computing
| Application, numerical computing <!-- Intended use -->
| <!-- Sparse matrix for FortranImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> Array-based, vectorized, concurrent, native distributed/shared-memory parallelism
| <!-- Reflective -->
| <!-- 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)
| <!-- Event-driven -->
 
<!-- -------------------- -->
|-
! scope="row" | [[FreeBASIC]]
| <!-- Original purpose --> Application, numerical computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
| {{yes|1966}}, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003, ISO/IEC 1539-1:2010 (2008) <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Gambas]]
! [[FreeBASIC]] <!-- Language -->
| <!-- Original purpose --> Application
| Application, numerical computing <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for FreeBASIC -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Game Maker Language]]
! G2 <!-- Language -->
| <!-- Original purpose --> Application, game programming
| Application, inference, expert system <!-- Intended use -->
| <!-- Sparse matrix for G2Imperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| common graphical development and runtime environment <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|- align="center"
! [[Gambas]] <!-- Language -->
| Application <!-- Intended use -->
<!-- Sparse matrix for Gambas -->
| {{Yes}}<!-- Imperative -->
| {{Yes}}<!-- Object-oriented -->
| <!-- Functional -->
| <!-- Procedural -->
| <!-- Generic -->
| <!-- Reflective -->
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[GLBasic]]
! [[Game Maker Language]]
| <!-- Original purpose --> Application, games
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Game Maker Language -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther paradigms --> Simple object-oriented
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- Other paradigms -->
| <!-- Other paradigms for Game Maker Language -->
| {{no}}
 
|-
|- align="center"
! scope="row" | [[Go (programming language)|Go]]
! [[GLBasic]] <!-- Language -->
| <!-- Original purpose --> Application, web, server-side
| Application, games <!-- Intended use -->
| <!-- Sparse matrix for GLBasicImperative --> {{yes}}
| <!-- 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>
| {{Yes}}<!-- Imperative -->
| <!-- 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>
| {{Yes}}<!-- Object-oriented -->
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Go Language Specification
| <!-- Event-driven -->
<!-- -------------------- -->
| simple object-oriented <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|- align="center"
! [[Go (programming language)|Go]] <!-- Language -->
| Application, Web, server-side<!-- Intended use -->
<!-- Sparse matrix for Go -->
| {{Yes}}<!-- Imperative -->
| <!-- Object-oriented -->
| <!-- Functional -->
| {{Yes}}<!-- Procedural -->
| <!-- Generic -->
| {{Yes}}<!-- Reflective -->
| {{Yes}}<!-- Event-driven (channels are built-in) -->
<!-- -------------------- -->
| concurrent <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Gosu (programming language)|Gosu]] <!-- Language -->
| <!-- Original purpose --> Application, general, scripting, web
| Application, general, scripting, Web <!-- Intended use -->
| <!-- Sparse matrix for GosuImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[GraphTalk]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application
| <!-- Imperative --> {{no}}
<!-- Sparse matrix for GraphTalk -->
| <!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther paradigms --> Logic
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| logic <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Groovy (programming language)|Groovy]] <!-- Language -->
| <!-- Original purpose --> Application, general, scripting, web
| Application, general, scripting, Web <!-- Intended use -->
| <!-- Sparse matrix for GroovyImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| aspect-oriented <!-- Other paradigms -->
| {{no|In progress}}, [[Java Community Process|JCP]]<ref>[http://jcp.org/en/jsr/detail?id=241 JSR 241]</ref> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Harbour (programming language)|Harbour]] <!-- Language -->
| <!-- Original purpose --> Application, business, data processing, general, Web <!-- Intended use -->web
| <!-- Sparse matrix for HarbourImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> [[declarative programming|Declarative]]
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[declarative programming|declarative]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Haskell]]
! [[Haskell (programming language)|Haskell]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application
| <!-- Sparse matrix for HaskellImperative --> {{no}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| [[lazy evaluation]] <!-- Other paradigms -->
| {{yes|2010}}, Haskell 2010<ref>{{cite web|url=http://www.haskell.org/onlinereport/haskell2010/ |title=The Haskell 2010 Language Report |accessdate=2011-12-07}} Most Haskell implementations extend the Haskell 2010 standard.</ref> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Haxe]] <!-- Language -->
| <!-- Original purpose --> Application, general, web
| Application, general, Web <!-- Intended use -->
| <!-- Sparse matrix for HaxeImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[HyperTalk]]
! [[HyperNext]] <!-- Language -->
| <!-- Original purpose --> Application, RAD, general
| Application, education <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for HyperNext -->
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Weakly typed
| {{Yes}}<!-- Event-drivenStandardized? --> {{unknown}}
<!-- -------------------- -->
| [[weak typing|weakly typed]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Io (programming language)|Io]]
! [[HyperTalk]] <!-- Language -->
| <!-- Original purpose --> Application, host-driven scripting
| Application, RAD, General <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for HyperTalk -->
| <!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther paradigms -->
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[weak typing|weakly typed]] <!-- Other paradigms -->
| {{unk}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Information Processing Language|IPL]]
! [[Io (programming language)|Io]] <!-- Language -->
| <!-- Original purpose --> General
| Application, host-driven scripting <!-- Intended use -->
| <!-- Sparse matrix for IoImperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{unknown}}
 
|-
|- align="center"
! scope="row" | [[ISLISP]] <!-- Language -->
| General <!-- IntendedOriginal usepurpose --> General
| <!-- Sparse matrix for ISLISPImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes|1997}}<br/>1997, 2007, [[International Organization for Standardization|ISO]] <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[J (programming language)|J]] <!-- Language -->
| <!-- Original purpose --> Application, [[data processing]]
| Data processing <!-- Intended use -->
| <!-- Sparse matrix for JImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Array-oriented, [[function-level programming|function-level]], tacit, concurrent
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| array-oriented, [[function-level programming|function-level]], tacit <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[JADE (programming language)|JADE]] <!-- Language -->
| <!-- Original purpose --> Application, distributed
| Application, distributed <!-- Intended use -->
| <!-- Sparse matrix for JADEImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Java (programming language)|Java]] <!-- Language -->
| <!-- Original purpose --> Application, business, client-side, general, mobile development, server-side, Webweb
| <!-- Intended useImperative --> {{yes}}
| <!-- Sparse matrix for JavaObject-oriented --> {{yes}}
| {{Yes}}<!-- ImperativeFunctional --> {{yes}}
| {{Yes}}<!-- Object-orientedProcedural --> {{yes}}
| {{Yes}}<!-- FunctionalGeneric --> {{yes}}
| {{Yes}}<!-- ProceduralReflective --> {{yes}}
| {{Yes}}<!-- GenericOther paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Java Language Specification
| {{Yes}}<!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| concurrent <!-- Other paradigms -->
| {{yes|''De facto'' standard}} via [http://docs.oracle.com/javase/specs/jls/se8/html/index.html Java Language Specification] <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[JavaScript]]
! [[Julia (programming language)|Julia]] <!-- Language -->
| <!-- Original purpose --> Client-side, server-side, web
| General and made for technical computing <!-- Intended use -->
| <!-- Sparse matrix for JavaImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- ReflectiveOther paradigms --> [[prototype-based]]
| <!-- Standardized? --> {{yes}}<br/>[[ECMA-262]] standard
| <!-- Event-driven -->
<!-- -------------------- -->
| [[multiple dispatch]], meta, scalar and [[Array programming|array-oriented]], parallel, concurrent, distributed ("cloud") <!-- Other paradigms -->
| {{No}}<!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Joy (programming language)|Joy]]
! [[JavaScript]] <!-- Language -->
| <!-- Original purpose --> Research
| Client-side, Server-side, Web <!-- Intended use -->
| <!-- Imperative --> {{no}}
<!-- Sparse matrix for JavaScript -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| {{Yes}}<!-- ReflectiveOther paradigms --> Stack-oriented
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[prototype-based]] <!-- Other paradigms -->
| {{yes|1997}}, ECMA <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Joyjq (programming language)|Joyjq]] <!-- Language -->
| Research <!-- IntendedOriginal usepurpose --> "awk for JSON"
| <!-- Sparse matrix for JoyImperative --> {{no}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> [[Tacit programming|Tacit]], [[Backtracking]], [[Generator (computer programming)|Streaming]], [[Parsing expression grammar|PEG]]
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| stack-oriented <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[KJulia (programming language)|KJulia]] <!-- Language -->
| <!-- Original purpose --> General, technical computing
| Data processing, business <!-- Intended use -->
| <!-- Sparse matrix for KImperative --> {{yes}}
| <!-- 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>
| <!-- Imperative -->
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Multiple dispatch, meta, scalar and array-oriented, parallel, concurrent, distributed ("cloud")
| <!-- Reflective -->
| <!-- 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| array-oriented, tacit <!-- Other paradigms -->
| {{unk}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[KotlinK (programming language)|KotlinK]] <!-- Language -->
| <!-- Original purpose --> Data processing, business
| Application, mobile development, server-sider, client-side, Web<!-- Intended use -->
| <!-- Sparse matrix for KotlinImperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> Array-oriented, tacit
| {{Yes}}<ref>{{cite web|url=http://blog.jetbrains.com/kotlin/2014/07/m8-is-out/|title=M8 is out!|quote=As a first peek into the future reflective capabilities of Kotlin, you can now access properties as first-class objects in Kotlin}}</ref><!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{unknown}}
<!-- -------------------- -->
| <!-- Other paradigms -->
|{{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Kotlin (programming language)|Kotlin]]
! [[LabVIEW]] (G) <!-- Language -->
| <!-- 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, industrial instrumentation-automation <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for LabVIEW (G) -->
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{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>
| <!-- Generic -->
| <!-- Other paradigms --> Concurrent<ref>{{Cite web|url=https://kotlinlang.org/docs/coroutines-overview.html|title=Coroutines &#124; Kotlin|website=Kotlin Help}}</ref>
| <!-- Reflective -->
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Kotlin Language Specification
| <!-- Event-driven -->
<!-- -------------------- -->
| [[dataflow programming|dataflow]], [[visual programming language|visual]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[KornShell|Ksh]]
! [[Lisp (programming language)|Lisp]] <!-- Language -->
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| General <!-- Intended use -->
| <!-- Sparse matrix for LispImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> Several variants, custom programmable, dynamic loadable modules
| <!-- Reflective -->
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003"/>
| <!-- Event-driven -->
 
<!-- -------------------- -->
|-
! scope="row" | [[LabVIEW]] (G)
| <!-- Original purpose --> Application, industrial instrumentation-automation
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- 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]]
| <!-- Original purpose --> General
| <!-- Imperative --> {{no}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{yes}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| {{unk}} <!-- Standardized? --> {{unknown}}
 
|-
|- align="center"
! scope="row" | [[LiveCode|Livecode]] <!-- Language -->
| <!-- Original purpose --> Application, RAD, general
| Application, RAD, General <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Livecode -->
| <!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Weakly typed
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[weak typing|weakly typed]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Logtalk]] <!-- Language -->
| <!-- Original purpose --> Artificial intelligence, application
| Artificial intelligence, application <!-- Intended use -->
| <!-- Sparse matrix for LogtalkImperative --> {{no}}
| <!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- ReflectiveOther paradigms --> Logic
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| logic <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Linden Scripting Language]] (LSL)
! [[Lua (programming language)|Lua]] <!-- Language -->
| <!-- Original purpose --> Virtual worlds content scripting and animation
| Application, embedded scripting <!-- Intended use -->
| <!-- Sparse matrix for LuaImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Functional --> {{no}}
| {{Yes}}<ref>Lua doesn't have explicit "object" type (more general type of "table" is used for object definition), but does have explicit syntax for object method calling</ref> <!-- Object-oriented -->
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> Scripts exist in in-world objects
| {{Yes}}<!-- Reflective -->
| <!-- 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| aspect-oriented <!-- Other paradigms -->
| {{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> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Lua (programming language)|Lua]]
! [[Maple (software)|Maple]] <!-- Language -->
| <!-- Original purpose --> Application, embedded scripting
| Symbolic computation, numerical computing <!-- Intended use -->
| <!-- Sparse matrix for MapleImperative --> {{yes}}
| <!-- 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>
| {{Yes}}<!-- Imperative -->
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented, prototype-based
| <!-- Reflective -->
| <!-- 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| [[distributed programming|distributed]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Maple (software)|Maple]]
! [[Mathematica]] <!-- Language -->
| <!-- Original purpose --> Symbolic computation, numerical computing
| Symbolic language <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Mathematica -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther paradigms --> Distributed
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| logic, distributed <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Mathematica]]
! [[MATLAB]] <!-- Language -->
| <!-- Original purpose --> [[Symbolic language (programming)|Symbolic language]]
| Highly ___domain-specific, numerical computing <!-- Intended use -->
| <!-- Sparse matrix for MATLABImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Logic, distributed
| <!-- Event-drivenStandardized? --> {{no}}
 
<!-- -------------------- -->
|-
! scope="row" | [[MATLAB]]
| <!-- Original purpose --> Highly ___domain-specific, numerical computing
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{yes}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Modula-2]] <!-- Language -->
| <!-- Original purpose --> Application, system
| Application, system <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Modula-2 -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes|1996}}<br/>1996, ISO<ref>ISO/IEC 10514-1:1996</ref> <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Modula-3]] <!-- Language -->
| Application <!-- IntendedOriginal usepurpose --> Application
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Modula-3 -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[MUMPS|MUMPS]] (M)]] <!-- Language -->
| <!-- Original purpose --> General, application, databases
| Application, databases <!-- Intended use -->
| <!-- Sparse matrix for MUMPSImperative --> {{yes}}
| <!-- Object-oriented --> {{planned|Approved for next Standard}}
| {{Yes}}<!-- Imperative -->
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- Generic --> {{some|Partially}} Thru Indirection and Xecute
| {{Yes}}<!-- Procedural -->
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> [[Concurrent computing|Concurrent]], [[multi-user]], [[NoSQL]], [[transaction processing]]
| <!-- Reflective -->
| <!-- Standardized? --> {{yes}}<br/>1977 ANSI, 1995, ISO 2020
| <!-- Event-driven -->
<!-- -------------------- -->
| [[Concurrent computing|concurrent]], [[multi-user]], [[NoSQL]], [[transaction processing]]<!-- Other paradigms -->
| {{yes|1977}}, ANSI <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Nim (programming language)|Nim]] <!-- Language -->
| <!-- Original purpose --> Application, general, Webweb, scripting, system <!-- Intended use -->
| <!-- Sparse matrix for NimImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Multiple dispatch, concurrent, [[Metaprogramming|meta]]
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[Multiple dispatch|multiple dispatch]], Concurrent, [[Metaprogramming|meta]]<!-- Other paradigms -->
| {{no}}<!-- Standardized? -->
 
|-
 
! scope="row" | [[Oberon (programming language)|Oberon]]
|- align="center"
| <!-- Original purpose --> Application, system
! [[Oberon (programming language)|Oberon]] <!-- Language -->
| Application, system <!-- Intended useImperative --> {{yes}}
| <!-- Sparse matrix for OberonObject-oriented --> {{yes}}
| {{Yes}}<!-- ImperativeFunctional --> {{no}}
| {{Yes}}<!-- Object-orientedProcedural --> {{no}}
| <!-- FunctionalGeneric --> {{no}}
| <!-- ProceduralReflective --> {{no}}
| <!-- Generic -->
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}}<!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Object Pascal]] ([[Embarcadero Delphi|Delphi]]) <!-- Language -->
| <!-- Original purpose --> Application, general, mobile app, web
| Application, general, mobile App, Web <!-- Intended use -->
| <!-- Sparse matrix for DartImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- ReflectiveOther paradigms --> Structured
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| structured <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Objective-C]] <!-- Language -->
| <!-- Original purpose --> Application, general
| Application, general <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Objective-C -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- ReflectiveOther paradigms --> Concurrent
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| concurrent <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[OCaml]] <!-- Language -->
| <!-- Original purpose --> Application, general
| Application <!-- Intended use -->
| <!-- Sparse matrix for OCamlImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Occam (programming language)|Occam]] <!-- Language -->
| General <!-- IntendedOriginal usepurpose --> General
| <!-- Sparse matrix for OccamImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> Concurrent, [[process-oriented programming|process-oriented]]
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| concurrent, [[process-oriented programming|process-oriented]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Opa (programming language)|Opa]] <!-- Language -->
| <!-- Original purpose --> Web applications
| Web applications <!-- Intended use -->
| <!-- Sparse matrix for OpaImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- ReflectiveOther paradigms --> Distributed
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[distributed programming|distributed]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[OpenLisp]]
! [[Oxygene (programming language)|Oxygene]] <!-- Language -->
| <!-- Original purpose --> General, Embedded Lisp Engine
| Application <!-- Intended use -->
| <!-- Sparse matrix for OxygeneImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{maybe|Optionally}}<br/> [[ISLISP]]
 
|-
|- align="center"
! scope="row" | [[OzOxygene (programming language)|OzOxygene]] <!-- Language -->
| <!-- Original purpose --> Application
| Application, distribution, education <!-- Intended use -->
| <!-- Sparse matrix for OzImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| concurrent, logic <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|- align="center"
! [[Pascal (programming language)|Pascal]] <!-- Language -->
| Application, education <!-- Intended use -->
<!-- Sparse matrix for Pascal -->
| {{Yes}}<!-- Imperative -->
| <!-- Object-oriented -->
| <!-- Functional -->
| {{Yes}}<!-- Procedural -->
| <!-- Generic -->
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{yes|1983}}, ISO<ref>ISO 7185</ref> <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Oz (programming language)|Oz-Mozart]]
! [[Perl]] <!-- Language -->
| <!-- Original purpose --> Application, distribution, education
| Application, scripting, text processing, Web <!-- Intended use -->
| <!-- Sparse matrix for PerlImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| {{Yes}}<!-- ReflectiveOther paradigms --> Concurrent, logic
| <!-- Event-drivenStandardized? --> {{no}}
 
<!-- -------------------- -->
|-
! scope="row" | [[Pascal (programming language)|Pascal]]
| <!-- Original purpose --> Application, education
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{yes}}<br/>1983, ISO<ref>ISO 7185</ref>
 
|-
|- align="center"
! scope="row" | [[Perl]]
! [[PHP]] <!-- Language -->
| <!-- Original purpose --> Application, scripting, text processing, Web
| Server-side, Web Application, Web <!-- Intended use -->
| <!-- Sparse matrix for PHPImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- Functional --> {{yes}}
| {{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> <!-- Object-oriented -->
| <!-- FunctionalProcedural --> {{yes}}
| <!-- Generic --> {{yes}}
| {{Yes}}<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.functions.php Chapter 17. Functions]</ref> <!-- Procedural -->
| <!-- GenericReflective --> {{yes}}
| {{Yes}}<!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[PHP]]
! [[PL/I]] <!-- Language -->
| <!-- Original purpose --> Server-side, web application, web
| Application <!-- Intended use -->
| <!-- Sparse matrix for PL/IImperative --> {{yes}}
| <!-- 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>
| {{Yes}}<!-- Imperative -->
| <!-- Functional --> {{yes}}<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.functions.php Chapter 17. Functions]</ref>
| {{Yes}}<!-- Object-oriented -->
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via language specification and Requests for Comments (RFCs)
| {{yes|1969}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[PL/I]]
! [[Plus (programming language)|Plus]] <!-- Language -->
| <!-- Original purpose --> Application
| Application, system development <!-- Intended use -->
| <!-- Sparse matrix for PlusImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{yes}}<br/>1969, ECMA-50 (1976)
 
|-
|- align="center"
! scope="row" | [[Plus (programming language)|Plus]]
! [[Prolog]] <!-- Language -->
| <!-- Original purpose --> Application, system development
| Application, artificial intelligence <!-- Intended use -->
| <!-- Sparse matrix for PrologImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| logic <!-- Other paradigms -->
| {{yes|1995}}, ISO <!-- Standardized? -->
 
|- align="center"
! [[PureBasic]] <!-- Language -->
| Application <!-- Intended use -->
<!-- Sparse matrix for PureBasic -->
| <!-- Imperative -->
| <!-- Object-oriented -->
| <!-- Functional -->
| {{Yes}}<!-- Procedural -->
| <!-- Generic -->
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[PostScript]]
! [[Python (programming language)|Python]] <!-- Language -->
| <!-- Original purpose --> Graphics, page description
| Application, general, Web, scripting, artificial intelligence, scientific computing <!-- Intended use -->
| <!-- Sparse matrix for PythonImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> [[Concatenative programming language|Concatenative]], [[Stack-oriented programming|stack-oriented]]
| {{Yes}}<!-- Reflective -->
| <!-- 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>
| <!-- Event-driven -->
<!-- -------------------- -->
| aspect-oriented <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Windows PowerShell|PowerShell]]
! [[Racket (programming language)|Racket]] <!-- Language -->
| <!-- Original purpose --> Administration, application, general, scripting
| Education, general, scripting <!-- Intended use -->
| <!-- Sparse matrix for RacketImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> [[pipeline programming|Pipeline]]
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| modular, logic, meta <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Prolog]]
! [[REALbasic]] <!-- Language -->
| <!-- Original purpose --> Application, artificial intelligence
| Application <!-- Intended use -->
| <!-- Imperative --> {{no}}
<!-- Sparse matrix for REALbasic -->
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Logic, declarative
| <!-- Standardized? --> {{yes}}<br/>1995, ISO/IEC 13211-1:1995, TC1 2007, TC2 2012, TC3 2017
| <!-- Event-driven -->
 
<!-- -------------------- -->
|-
! scope="row" | [[PureBasic]]
| <!-- Original purpose --> Application
| <!-- Imperative --> {{yes}}
| <!-- Object-oriented --> {{no}}
| <!-- Functional --> {{no}}
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| {{unk}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Python (programming language)|Python]]
! [[REBOL]] <!-- Language -->
| <!-- Original purpose --> Application, general, web, scripting, artificial intelligence, scientific computing
| Distributed <!-- Intended use -->
| <!-- Sparse matrix for REBOLImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Aspect-oriented
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Python Enhancement Proposals (PEPs)
| <!-- Event-driven -->
<!-- -------------------- -->
| [[dialecting|dialected]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[R (programming language)|R]]
! [[IBM RPG|RPG]] <!-- Language -->
| <!-- Original purpose --> Application, statistics
| Application, system <!-- Intended use -->
| <!-- Sparse matrix for IBM RPGImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[RubyRacket (programming language)|RubyRacket]] <!-- Language -->
| <!-- Original purpose --> Education, general, scripting
| Application, scripting, Web <!-- Intended use -->
| <!-- Sparse matrix for RubyImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> [[Modular programming|Modular]], logic, meta
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| aspect-oriented <!-- Other paradigms -->
| {{yes|2011(JIS X 3017), 2012(ISO/IEC 30170)}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[RustRaku (programming language)|RustRaku]] <!-- Language -->
| <!-- Original purpose --> Scripting, text processing, glue
| Application, system <!-- Intended use -->
| <!-- Sparse matrix for RustImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Aspect-oriented, array, lazy evaluation, multiple dispatch, metaprogramming
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| concurrent <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[REALbasic]]
! [[S (programming language)|S]] <!-- Language -->
| <!-- Original purpose --> Application
| Application, statistics <!-- Intended use -->
| <!-- Sparse matrix for SImperative --> {{no}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? --> {{unknown}}
 
|-
|- align="center"
! scope="row" | [[Rebol]]
! [[S-Lang (programming library)|S-Lang]] <!-- Language -->
| <!-- Original purpose --> Distributed
| Application, numerical, scripting <!-- Intended use -->
| <!-- Sparse matrix for S-LangImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> [[dialecting|Dialected]]
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[REXX]]
! [[Scala (programming language)|Scala]] <!-- Language -->
| <!-- Original purpose --> Scripting
| Application, distributed, Web <!-- Intended use -->
| <!-- Sparse matrix for ScalaImperative --> {{yes}}
| <!-- Object-oriented --> {{yes}} ([[NetRexx]] and [[Object REXX]] dialects)
| {{Yes}}<!-- Imperative -->
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| {{Yes}}<!-- Reflective -->
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| <!-- Standardized? --> {{yes}}<br/>1996 (ANSI X3.274-1996)
| {{yes|''De facto'' standard}} via [http://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaReference.pdf Scala Language Specification (SLS)] <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[IBM RPG|RPG]]
! [[Scheme (programming language)|Scheme]] <!-- Language -->
| <!-- Original purpose --> Application, system
| Education, general <!-- Intended use -->
| <!-- Sparse matrix for SchemeImperative --> {{yes}}
| <!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{yes|1998}}, R<sup>6</sup>RS <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[Ring (programming language)|Ring]]
! [[Seed7]] <!-- Language -->
| <!-- Original purpose --> Application
| Application, general, scripting, Web <!-- Intended use -->
| <!-- Sparse matrix for Seed7Imperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> metaprogramming, declarative, [[natural-language programming|natural-language]]
| {{Yes}}<!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| multi-paradigm, extensible, structured <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Ruby (programming language)|Ruby]]
! [[Simula]] <!-- Language -->
| <!-- Original purpose --> Application, scripting, web
| Education, general <!-- Intended use -->
| <!-- Sparse matrix for SimulaImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Aspect-oriented
| <!-- Standardized? --> {{yes}}<br/>2011(JIS X 3017), 2012(ISO/IEC 30170)
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| [[discrete event simulation]], [[multi-threaded]] (quasi-parallel) program execution <!-- Other paradigms -->
| {{yes|1968}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Rust (programming language)|Rust]]
! [[Microsoft Small Basic|Small Basic]] <!-- Language -->
| <!-- Original purpose --> Application, server-side, system, web
| Application, education, games <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Small Basic -->
| <!-- 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>
| {{Yes}}<!-- Imperative -->
| <!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{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>
| <!-- Generic -->
| <!-- ReflectiveOther paradigms --> Concurrent
| <!-- Standardized? --> {{maybe|De facto}} standard by the official Rust releases
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| [[component-oriented programming|component-oriented]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[S (programming language)|S]]
! [[Smalltalk]] <!-- Language -->
| <!-- Original purpose --> Application, statistics
| Application, General, Business, Web, Artificial Intelligence, Education <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Smalltalk -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{yes}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| {{Yes}}<!-- Reflective -->
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| concurrent, declarative <!-- Other paradigms -->
| {{yes|1998}}, [http://www.techstreet.com/cgi-bin/detail?product_id=56122 ANSI] <!-- Standardized? -->
 
|- align="center"
! [[SNOBOL]] <!-- Language -->
| Text processing <!-- Intended use -->
<!-- Sparse matrix for SNOBOL -->
| <!-- Imperative -->
| <!-- Object-oriented -->
| <!-- Functional -->
| <!-- Procedural -->
| <!-- Generic -->
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{unk}} <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[S-Lang]]
! [[Standard ML]] <!-- Language -->
| <!-- Original purpose --> Application, numerical, scripting
| Application <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Standard ML -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| <!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{yes|1997}}, SML '97<ref>[http://www.smlnj.org/sml97.html SMLNJ.org]</ref> <!-- Standardized? --> {{no}}
 
|-
|- align="center"
! scope="row" | [[SwiftScala (Apple programming language)|SwiftScala]] <!-- Language -->
| <!-- Original purpose --> Application, general, parallel, distributed, web
| Application, general <!-- Intended use -->
| <!-- Sparse matrix for SwiftImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Data-oriented programming, metaprogramming
| {{Yes}}<!-- Reflective -->
| <!-- Standardized? --> {{maybe|De facto}}<br/>standard via Scala Language Specification (SLS)
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| concurrent <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Scheme (programming language)|Scheme]]
! [[Tcl]] <!-- Language -->
| <!-- Original purpose --> Education, general
| Application, scripting, Web <!-- Intended use -->
| <!-- Sparse matrix for TclImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| {{Yes}}<!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> meta, extensible-syntax
| {{Yes}}<!-- Reflective -->
| <!-- 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>
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Seed7]]
! [[Visual Basic]] <!-- Language -->
| <!-- Original purpose --> Application, general, scripting, web
| Application, RAD, education, business, general, (Includes VBA), office automation <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Visual Basic -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| {{Yes}}<!-- GenericReflective --> {{yes}}
| <!-- Other paradigms --> Multi-paradigm, extensible, structured
| <!-- Reflective -->
| {{Yes}}<!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| [[component-oriented programming|component-oriented]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Simula]]
! {{nowrap|[[Visual Basic .NET]]}} <!-- Language -->
| <!-- Original purpose --> Education, general
| Application, RAD, education, Web, business, general <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Visual Basic .NET -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| {{Yes}}<!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> [[discrete event simulation]], [[multi-threaded]] (quasi-parallel) program execution
| {{Yes}}<!-- Reflective -->
| {{Yes}}<!-- Event-drivenStandardized? --> {{yes}}<br/>1968
<!-- -------------------- -->
| <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Microsoft Small Basic|Small Basic]]
! [[Visual FoxPro]] <!-- Language -->
| <!-- Original purpose --> Application, education, games
| Application <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Visual FoxPro -->
| <!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| <!-- Other paradigms --> [[component-oriented programming|Component-oriented]]
| <!-- Reflective -->
| <!-- Event-drivenStandardized? --> {{no}}
<!-- -------------------- -->
| data-centric, logic <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Smalltalk]]
! [[Visual Prolog]] <!-- Language -->
| <!-- Original purpose --> Application, general, business, artificial intelligence, education, web
| Application <!-- Intended use -->
| <!-- Imperative --> {{yes}}
<!-- Sparse matrix for Visual Prolog -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{yes}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| {{Yes}}<!-- FunctionalProcedural --> {{yes}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{yes}}
| <!-- ReflectiveOther paradigms --> Concurrent, declarative
| {{Yes}}<!-- Event-drivenStandardized? --> {{yes}}<br/>1998, ANSI
<!-- -------------------- -->
| declarative, logic <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[SNOBOL]]
! [[Windows PowerShell]] <!-- Language -->
| Administration <!-- IntendedOriginal usepurpose --> Text processing
| <!-- Imperative --> {{no}}
<!-- Sparse matrix for Windows PowerShell -->
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{no}}
| {{Yes}}<!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{no}}
| <!-- GenericReflective --> {{no}}
| {{Yes}}<!-- ReflectiveOther paradigms -->
| <!-- Event-drivenStandardized? --> {{unknown}}
<!-- -------------------- -->
| [[pipeline programming|pipeline]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|-
|- align="center"
! scope="row" | [[Standard ML]]
! [[XL (programming language)|XL]] <!-- Language -->
| <!-- IntendedOriginal usepurpose --> Application
| <!-- Sparse matrix for XLImperative --> {{yes}}
| {{Yes}}<!-- ImperativeObject-oriented --> {{no}}
| {{Yes}}<!-- Object-orientedFunctional --> {{yes}}
| <!-- FunctionalProcedural --> {{no}}
| <!-- ProceduralGeneric --> {{yes}}
| <!-- GenericReflective --> {{no}}
| <!-- Reflective -->
| <!-- Event-driven -->
<!-- -------------------- -->
| [[concept programming]] <!-- Other paradigms -->
| {{no}} <!-- Standardized? -->
 
|- align="center"
! [[Xojo]] <!-- Language -->
| Application, RAD, General, Web <!-- Intended use -->
<!-- Sparse matrix for Xojo -->
| {{Yes}}<!-- Imperative -->
| {{Yes}}<!-- Object-oriented -->
| <!-- Functional -->
| {{Yes}}<!-- Procedural -->
| <!-- Generic -->
| {{Yes}}<!-- Reflective -->
| {{Yes}}<!-- Event-driven -->
<!-- -------------------- -->
| <!-- 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>
| {{no}} <!-- Standardized? -->
 
|-
<!-- -------------------- -->
! scope="row" | [[Swift (programming language)|Swift]]
|- align="center"class="sortbottom"
| <!-- Original purpose --> Application, general
! Language
| <!-- Imperative --> {{yes}}
! Intended use <!--What this was to be used for originally. Not what it is used for now, which is hard to verify.-->
| <!-- Object-oriented --> {{yes}}
! Imperative
| <!-- Functional --> {{yes}}
! Object-oriented
| <!-- Procedural --> {{yes}}
! Functional
| <!-- Generic --> {{yes}}
! Procedural
| <!-- Reflective --> {{yes}}
! Generic
| <!-- Other paradigms --> Concurrent, declarative, [[Protocol (object-oriented programming)|protocol-oriented]]
! Reflective
| <!-- Standardized? --> {{no}}
! Event-driven
! Other paradigm(s)
! Standardized?
|}
 
==Type systems==
Brief definitions
* A [[Nominative type system|nominal type system]] means that the language decides whether types are compatible and/or equivalent based on explicit declarations and names.
* A [[structural type system]] means that the language decides whether types are compatible and/or equivalent based on the definition and characteristics of the types.
* ''Type checking'' determines whether and when types are verified. Static checking means that type errors are reported based on a program's text (source code). Dynamic checking means that type errors are reported based on a program's dynamic (run-time) behavior.
{| class="wikitable sortable"
|-
! scope="row" | [[Tcl]]
! Language
| <!-- Original purpose --> Application, scripting, web
! [[Type safety]]
| <!-- Imperative --> {{yes}}
! [[Type system#Explicit or implicit declaration and inference|Type expression]]
| <!-- Object-oriented --> {{yes}}
! [[Type equivalence|Type compatibility and equivalence]] <!-- dynamic typing doesn't automatically mean it has structural compatibility -->
| <!-- Functional --> {{yes}}
! [[Type checking]]
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[V (programming language)|V (Vlang)]]
! [[ActionScript]] 3.0
| <!-- Original purpose --> Application, general, system, game, web, server-side
| {{Yes|safe}}
| <!-- Imperative --> {{yes}}
| implicit with optional explicit typing
| <!-- Object-oriented --> {{maybe|Can be viewed as}}
|
| <!-- Functional --> {{maybe|Can be viewed as}}
| static
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Visual Basic (classic)|Visual Basic]]
! [[Ada (programming language)|Ada]]
| <!-- Original purpose --> Application, RAD, education, business, general, (Includes VBA), office automation
| {{Yes|safe}}<ref group=TS>Unsafe operations are well isolated by a "Unchecked_" prefix.</ref>
| <!-- Imperative --> {{yes}}
| explicit
| <!-- Object-oriented --> {{yes}}
| nominal
| <!-- Functional --> {{no}}
| static
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Component-oriented
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | {{nowrap|[[Visual Basic .NET]]}}
! [[Aldor]]
| <!-- Original purpose --> Application, RAD, education, web, business, general
| {{No|unsafe}}
| <!-- Imperative --> {{yes}}
| implicit
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
| static
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Structured, concurrent
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ALGOLVisual 58FoxPro]]
| <!-- Original purpose --> Application
| {{Yes|safe}}
| <!-- Imperative --> {{yes}}
| explicit
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{no}}
| static
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Data-centric, logic
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[ALGOLVisual 60Prolog]]
| <!-- Original purpose --> Application
| {{Yes|safe}}
| <!-- Imperative --> {{yes}}
| explicit
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{yes}}
| static
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> Declarative, logic
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Wolfram Language]]
! [[ALGOL 68]]
| <!-- Original purpose --> Symbolic language
| {{Yes|safe}}
| <!-- Imperative --> {{yes}}
| explicit
| <!-- Object-oriented --> {{no}}
| structural
| <!-- Functional --> {{yes}}
| static & [[tagged union]]s
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{yes}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms --> Logic, distributed
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[APLXL (programming language)|APLXL]]
| <!-- Original purpose -->
| {{Yes|safe}}
| <!-- Imperative --> {{yes}}
|
| <!-- Object-oriented --> {{yes}}
|
| <!-- Functional --> {{no}}
| dynamic
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms --> [[concept programming]]
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Xojo]]
! [[AutoHotkey]]
| <!-- Original purpose --> Application, RAD, general, web
| typeless
| <!-- Imperative --> {{yes}}
| n/a
| <!-- Object-oriented --> {{yes}}
| n/a
| <!-- Functional --> {{no}}
| n/a
| <!-- Procedural --> {{yes}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{yes}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[XPath]]/[[XQuery]]
! [[Ateji PX]]
| <!-- Original purpose --> Databases, data processing, scripting
| {{Yes|safe}}
| <!-- Imperative --> {{no}}
| explicit
| <!-- Object-oriented --> {{no}}
| nominal
| <!-- Functional --> {{yes}}
| static
| <!-- Procedural --> {{no}}
| <!-- 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]]
! [[Bash (Unix shell)|Bash]]
| <!-- Original purpose --> Domain-specific, application
| {{?}}
| <!-- Imperative --> {{?yes}}
| <!-- Object-oriented --> {{no}}
| {{?}}
| <!-- Functional --> {{?no}}
| <!-- Procedural --> {{no}}
| <!-- Generic --> {{no}}
| <!-- Reflective --> {{no}}
| <!-- Other paradigms -->
| <!-- Standardized? --> {{no}}
 
|-
! scope="row" | [[Zig (programming language)|Zig]]
! [[BASIC]]
| <!-- Original purpose --> Application, general, system
| {{Yes|safe}}
| <!-- Imperative --> {{yes}}
| explicit
| <!-- Object-oriented --> {{no}}
| nominal
| <!-- Functional --> {{yes}}
| static
| <!-- Procedural --> {{yes}}
|-
| <!-- Generic --> {{yes}}
! [[BLISS]]
| <!-- Reflective --> {{yes}}
| typeless
| <!-- Other paradigms --> Concurrent
| n/a
| <!-- Standardized? --> {{no}}
| n/a
 
| n/a
|-
! [[BeanShell]]
| {{Yes|safe}}
|
| nominal
| dynamic
|-
! [[Boo (programming language)|Boo]]
| {{Yes|safe}}
| implicit with optional explicit typing
|
| static with optional dynamic typing
|-
! [[Bro (software)|Bro]]
| {{Yes|safe}}
| implicit with optional explicit typing
| nominal
| static
|-
! [[C (programming language)|C]]
| {{No|unsafe}}
| explicit
| nominal
| static
|-
! [[C++]] ([[ISO/IEC 14882]])
| {{No|unsafe}}
| explicit
| nominal
| static<ref group=TS>with optional dynamic type casting (see [[dynamic cast]])</ref>
|-
! [[C Sharp (programming language)|C#]]
| {{No|unsafe}}<ref group=TS name=r2 />
| implicit with optional explicit typing
| nominal
| static<ref group=TS>with optional dynamic type (see [[C Sharp syntax#Dynamic|dynamic member lookup]])</ref>
|-
! [[Clean (programming language)|Clean]]
| {{Yes|safe}}
| implicit
|
| static
|-
! [[Clojure]]
| {{Yes|safe}}
| implicit with optional explicit typing
|
| dynamic
|-
! [[COBOL]]
| {{Yes|safe}}
| explicit
| nominal
| static
|-
! [[ColdFusion Markup Language|ColdFusion]] (CFML)
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[Common Lisp]]
| {{Yes|safe}}
| implicit with optional explicit typing
|
| dynamic
|-
! [[Curl (programming language)|Curl]]
| {{Yes|safe}}
|
| nominal
|
|-
! [[Cython]]
| {{Yes|safe}}
| implicit with optional explicit typing
| nominal (extension types) and structural (Python)
| dynamic with optional static typing
|-
! [[D (programming language)|D]]
| {{No|unsafe}}<ref group=TS name=r2>It is almost safe, unsafe features are not commonly used.</ref>
| explicit
| nominal
| static
|-
! [[Dylan (programming language)|Dylan]]
| {{Yes|safe}}
|
|
| dynamic
|-
! [[Eiffel (programming language)|Eiffel]]
| {{Yes|safe}}
|
| nominal
| static
|-
! [[Erlang (programming language)|Erlang]]
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[Euphoria (programming language)|Euphoria]]
| {{Yes|safe}}
| explicit, implicit with objects
| nominal
| static, dynamic with objects
|-
! [[F Sharp (programming language)|F#]]
| {{Yes|safe}}
| implicit
| nominal
| static
|-
! [[Falcon (programming language)|Falcon]]
| {{Yes|safe}}
| implicit
| structural
| dynamic
|-
! [[Forth (programming language)|Forth]]
| typeless
| n/a
| n/a
| n/a
|-
! [[Fortran]]
| {{Yes|safe}}
| explicit<ref group=TS>Optionally, typing can be ''explicitly implied'' by the first letter of the identifier (known as implicit typing within the Fortran community).</ref>
| nominal
| static
|-
! scope="row" | [[Z shell|Zsh]]
! [[Gambas]]
| <!-- Original purpose --> [[Shell (computing)|Shell]], [[Scripting language|scripting]]
| {{Yes|safe}}
| <!-- Imperative --> {{yes}}
| explicit
| <!-- Object-oriented --> {{no}}
| nominal
| <!-- Functional --> {{no}}
|
| <!-- Procedural --> {{yes}}
|-
| <!-- Generic --> {{no}}
! [[GLBasic]]
| <!-- Reflective --> {{no}}
| {{Yes|safe}}
| <!-- Other paradigms --> Loadable modules
| explicit. Non-explicit declarations available through project options
| <!-- Standardized? --> {{maybe|Optionally}}<br/>[[POSIX.2]]<ref name="POSIX 1003"/>
| nominal
| static
|-
! [[Go (programming language)|Go]]<ref>[http://golang.org/doc/go_spec.html The Go Programming Language Specification]</ref>
| {{Yes|safe}}
| implicit with optional explicit typing
| structural
| static
|-
! [[Gosu (programming language)|Gosu]]
| {{Yes|safe}}
| partially implicit (local type inference)
| nominal (subclassing) and structural (structural)
| static
|-
! [[Groovy (programming language)|Groovy]]
| {{Yes|safe}}
| implicit with optional explicit typing
|
| dynamic with optional static typing
|-
! [[Harbour (programming language)|Harbour]]
| {{Yes|safe}}
| implicit with optional explicit typing
|
| dynamic
|-
! [[Haskell (programming language)|Haskell]]
| {{Yes|safe}}
| implicit with optional explicit typing
| structural
| static
|-
! [[Haxe]]
| {{Yes|safe}}
| implicit with optional explicit typing
| nominal (subclassing) and structural (structural)
| static with optional dynamic typing
|-
! [[Io (programming language)|Io]]
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[ISLISP]]
| {{Yes|safe}}
|
|
| dynamic
|-
! [[J (programming language)|J]]
| {{Yes|safe}}
|
|
| dynamic
|-
! [[Java (programming language)|Java]]
| {{Yes|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
| nominal
| static
|-
! [[JavaScript]]
| {{Yes|safe}}
| implicit
| structural
| dynamic
|-
! [[Julia (programming language)|Julia]]
| {{Yes|safe}}
| implicit with optional explicit typing<ref>http://julia.readthedocs.org/en/latest/manual/types/</ref>
|
|
|-
! [[Joy (programming language)|Joy]]
| {{Yes|safe}}
|
|
| dynamic
|-
! [[Kotlin (programming language)|Kotlin]]
| {{Yes|safe}}
| partially implicit (local type inference)
| nominal
| static
|-
! [[LabVIEW]]
| {{Yes|safe}}
|
|
|
|-
! [[Lua (programming language)|Lua]]
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[Maple (programming language)|Maple]]
| {{Yes|safe}}
|
|
| dynamic
|-
! [[Mathematica]]
| {{Yes|safe}}
|
|
| dynamic
|-
! [[MATLAB]] M-code
| {{Yes|safe}}
|
|
| dynamic
|-
! [[Modula-2]]
| {{No|unsafe}}<ref group=TS name=r2 />
| explicit
| nominal
| static
|-
! [[Modula-3]]
| {{No|unsafe}}<ref group=TS name=r2 />
| explicit
| structural
| static
|-
! [[MUMPS|MUMPS (M)]]
| typeless
| n/a
| n/a
| n/a
|-
! [[Oberon (programming language)|Oberon]]
| {{Yes|safe}}
| explicit
| nominal
| static and partially dynamic<ref group=TS>dynamic checking of type extensions i.e. inherited types</ref>
|-
! [[Objective-C]]
| {{Yes|safe}}
| explicit
| nominal
| dynamic with optional static typing<ref>[http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocStaticBehavior.html Developer.apple.com]</ref>
|-
! [[OCaml]]
| {{Yes|safe}}
| implicit with optional explicit typing
| structural (records are nominal)
| static
|-
! [[Object Pascal]] ([[Embarcadero Delphi|Delphi]])
| {{Yes|safe}}
| explicit
| nominal
| static
|-
! [[Opa (programming language)|Opa]]
| {{Yes|safe}}
| implicit with optional explicit typing
| structural
| static
|-
! [[Oxygene (programming language)|Oxygene]]
| {{No|unsafe}}
| implicit
|
| static
|-
! [[Oz (programming language)|Oz]]
| {{Yes|safe}}
| implicit
| structural
| dynamic
|-
! [[Pascal (programming language)|Pascal]]
| {{No|unsafe}}<ref group=TS name=r2 />
| explicit
| nominal
| static
|-
! [[Perl]] 5
|
| implicit
|
| dynamic
|-
! [[Perl 6]]
|
| partially implicit<ref group=TS>explicit for static types</ref>
|
| dynamic with optional static typing
|-
! [[PHP]]
|
| implicit
|
| dynamic
|-
! [[Plus (programming language)|Plus]]
| {{Yes|safe}}
| explicit
| structural
| static, dynamic (optional)
|-
! [[Prolog]]
|
|
|
| dynamic
|-
! [[Pure (programming language)|Pure]]
|
|
|
| dynamic
|-
! [[Python (programming language)|Python]]
| {{Yes|safe}}
| implicit
| structural
| dynamic
|-
! [[REBOL]]
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[Rexx]]
| typeless
| n/a, implicit wrt numbers
| n/a
| static+dynamic wrt numbers
|-
! [[IBM RPG|RPG]]
| {{No|unsafe}}
|
|
| static
|-
! [[Ruby (programming language)|Ruby]]
| {{Yes|safe}}
| implicit
| structural
| dynamic
|-
! [[Rust (programming language)|Rust]]
| {{Yes|safe}}
| implicit with optional explicit typing
|
| static with optional dynamic typing
|-
! [[S (programming language)|S]]
|
|
|
| dynamic
|-
! [[S-Lang (programming library)|S-Lang]]
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[Scala (programming language)|Scala]]
| {{Yes|safe}}
| partially implicit (local type inference)
| nominal (subclassing) and structural (structural)
| static
|-
! [[Scheme (programming language)|Scheme]]
| {{Yes|safe}}
| implicit
|
| dynamic ([[Latent_typing|latent]])
|-
! [[Seed7]]
| {{Yes|safe}}
| explicit
| nominal
| static
|-
! [[Simula]]
| {{Yes|safe}}
|
|
| static<ref group=TS>optional for formal and virtual procedures</ref>
|-
! [[Smalltalk]]
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[Swift (programming language)|Swift]]
| {{Yes|safe}}
| partially implicit (local type inference)
| nominal (subclassing) and structural (structural)
| static
|-
! [[Standard ML]]
| {{Yes|safe}}
| implicit with optional explicit typing
| structural
| static
|-
! [[Tcl]]
|
|
|
| dynamic
|-
! [[Visual Basic]]
| {{Yes|safe}}
| implicit with optional explicit typing
| nominal
| static
|-
! {{nowrap|[[Visual Basic .NET]]}}
| {{No|unsafe}}<ref group=TS name=r2 />
| explicit
|
| static
|-
! [[Visual Prolog]]
| {{Yes|safe}}
| partially implicit
| nominal
| static
|-
! [[Windows PowerShell]]
| {{Yes|safe}}
| implicit
|
| dynamic
|-
! [[XL (programming language)|XL]]
| {{Yes|safe}}
|
| nominal
| static
|-
! [[Xojo]]
| {{Yes|safe}}
| explicit
| nominal
| static
|- class="sortbottom"
! Language
! Type safety
! Type expression
! Type compatibility among composites
! 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]] 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.
 
Some (mostly older) languages require that the programmerprogrammers explicitly add checks for these kinds of errors. Psychologically, different [[List of cognitive biases|cognitive biases]] (e.g., [[optimism bias]]) may affect novicenovices and experts alike and lead them to skip these omissionschecks. This can lead to [[software bug|erroneous behavior]].
 
'''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]].
{|class="wikitable sortable"
 
|-
'''No Failsafe I/O''':
! Language
[[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>
! Failsafe I/O
|-
! [[Ada (programming language)|Ada]]
| {{yes}} (exceptions)
|-
! [[ALGOL]]
| {{yes}} (exceptions or return value depending on function)
|-
! [[AutoHotkey]]
| {{no}} (global ErrorLevel must be explicitly checked)
|-
! [[Bash (Unix shell)|Bash]]
| {{?}}
|-
! [[Bro (software)|Bro]]
| {{yes}}
|-
! [[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}}
|-
! [[COBOL]]
| {{no}}
|-
! [[Common Lisp]]
| {{yes}}
|-
! [[D (programming language)|D]]
| {{yes}}{{citation needed|date=February 2011}}
|-
! [[Eiffel (programming language)|Eiffel]]
| {{no}} – It actually depends on the library and it is not defined by the language
|-
! [[Erlang (programming language)|Erlang]]
| {{yes}}
|-
! [[Falcon (programming language)|Falcon]]
| {{yes}}
|-
! [[Fortran]]
| {{yes}}
|-
! [[GLBasic]]
| {{no}} – Will generally cause program to crash
|-
! [[Go (programming language)|Go]]
| {{yes}} (unless result explicitly ignored)
|-
! [[Gosu (programming language)|Gosu]]
| {{yes}}
|-
! [[Harbour (programming language)|Harbour]]
| {{yes}}
|-
! [[Haskell (programming language)|Haskell]]
| {{yes}}
|-
! [[ISLISP]]
| {{yes}}
|-
! [[Java (programming language)|Java]]
| {{yes}}
|-
! [[Julia (programming language)|Julia]]
| {{yes}}
|-
! [[Kotlin (programming language)|Kotlin]]
| {{yes}}
|-
! [[LabVIEW]]
| {{yes}}
|-
! [[Lua (programming language)|Lua]]
| {{no}} (some functions do not warn or throw exceptions)
|-
! [[Mathematica]]
| {{yes}}
|-
! [[Object Pascal]] ([[Embarcadero Delphi|Delphi]])
| {{some}}
|-
! [[Objective-C]]
| {{yes}} (exceptions)
|-
! [[OCaml]]
| {{yes}} (exceptions)
|-
! [[Perl]]
| {{no}}<ref group="FSIO">Considerable error checking can be enabled optionally, but by default Perl is not failsafe.</ref>
|-
! [[Perl 6]]
| {{yes}}
|-
! [[PHP]]
| {{yes}}
|-
! [[Python (programming language)|Python]]
| {{yes}}
|-
! [[REBOL]]
| {{yes}}
|-
! [[Rexx]]
| {{yes}} (with optional '''signal on'''&hellip; trap handling)
|-
! [[IBM RPG|RPG]]
| {{no}}
|-
! [[Ruby (programming language)|Ruby]]
| {{yes}}
|-
! [[Rust (programming language)|Rust]]
| {{yes}} (unless result explicitly ignored)
|-
! [[S (programming language)|S]]
| {{unknown}}
|-
! [[Smalltalk (programming language)|Smalltalk]]
| {{yes}}
|-
! [[Scala (programming language)|Scala]]
| {{yes}}<ref>Scala runs on the Java Virtual Machine from which it inherits the runtime exception handling.</ref>
|-
! [[Standard ML]]
| {{yes}}{{citation needed|date=February 2011}}
|-
! [[Tcl]]
| {{yes}}
|-
! [[Visual Basic]]
| {{yes}}
|-
! [[Visual Prolog]]
| {{yes}}
|-
! [[Xojo]]
| {{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" style="float:right;"
|-
! scope="col" | Language
! Language !! Statements ratio<ref>Data from [http://books.google.at/books?id=3JfE7TGUwvgC&pg=PT100 Code Complete, p. 100]. 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://benchmarksgame.alioth.debian.org/debian/c.php benchmarksgame.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
Line 2,680 ⟶ 1,736:
|}
 
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>{{cite conference | id = {{citeseerx|=10.1.1.51.4656}} | 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 [http://benchmarksgame.alioth.debian.org/play.html#gzbytes GZip bytes], can be found on the Computer Language Benchmarks Game.<ref>{{Cite web|url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/how-programs-are-measured.html#source-code|title=How programs are measured |website=Computer Language Benchmarks Game|access-date=2018-05-29}}</ref>
{{-}}
 
==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]]. [http://benchmarksgame.alioth.debian.org/ The Computer Language Benchmarks Game] site warns against [http://benchmarksgame.alioth.debian.org/dont-jump-to-conclusions.php 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.
 
[[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>
 
==Timeline of specific language comparisons==
* 19731974[http:Comparative Notes on Algol 68 and PL//comjnlI<ref>{{cite journal |last1=Valentine |first1=S.oxfordjournals H.org/cgi/content/abstract/17/4/325 |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 – FebruaryNovember 19731974
* 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] -->
* 1977 – [http://comjnl.oxfordjournals.org/cgi/content/abstract/21/4/316 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.
* 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.
* 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
 
==See also==
*{{Category [[Alphabeticaltree listall|Lists of programming languages]]|mode=all|depth=2}}
 
* [[Comparison of basic instructions of programming languages]]
* [[Comparison of programming languages (stringbasic functionsinstructions)]]
* [[Comparison of programming languages (strings)]]
* [[Comparison of programming languages (syntax)]]
* [[Comparison of programmingintegrated languagesdevelopment (array)environments]]
* [[Comparison of programming languages (object-oriented programming)]]
* [[Comparison of programming languages (list comprehension)]]
* [[Comparison of programming languages (mapping)]]
* [[Comparison of programming paradigms]]
* [[Comparison of multi-paradigm programming languages]]
* [[Comparison of type systems]]
* [[Educational programming language]]
* [[Hello world program examples]]
* [[Measuring programming language popularity]]
* [[Programming language]]
* [[TIOBE index]]
 
==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-0-89006-812-0 |url-access=registration |url=https://archive.org/details/authenticationsy0000oppl}}
 
{{Programming languages}}
==External links==
* {{Dmoz|Computers/Programming/Languages/Comparison_and_Review}}
* [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://benchmarksgame.alioth.debian.org/u32/code-used-time-used-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://merd.sourceforge.net/pixel/language-study/scripting-language/ Scriptometer scores] — multiple comparisons of 26 programming languages.
* [http://pleac.sourceforge.net/ PLEAC] — Programming Language Examples Alike Cookbook.
* [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.
* [http://rosettacode.org/ Rosetta Code] — a programming language comparison wiki
 
[[Category:Programming language comparisons| ]]