Vergleich der Programmiersprachen
Programmiersprachen werden zur Kontrolle des Verhaltens einer Maschine verwendet (oft a Computer). Wie natürliche Sprachen, Programmiersprachen folgen den Regeln für Syntax und Semantik.
Es gibt Tausende Programmiersprachen[1] Und jedes Jahr werden neue geschaffen. Nur wenige Sprachen werden jemals so beliebt, dass sie von mehr als wenigen Menschen verwendet werden, aber professionell Programmierer Kann Dutzende von Sprachen in einer Karriere verwenden.
Die meisten Programmiersprachen werden nicht durch einen internationalen (oder nationalen) Standard standardisiert, selbst weit verbreitete, wie z. Perl oder Standard ml (trotz des Namens). Bemerkenswerte standardisierte Programmiersprachen enthalten Algol, C, C ++, JavaScript (unter dem Namen ECMaskript), Smalltalk, Prolog, Common Lisp, Planen (IEEE Standard), ISLISP, Ada, Forran, Cobol, Sql und XQuery.
Allgemeiner Vergleich
Die folgende Tabelle vergleicht allgemeine und technische Informationen für eine Auswahl der häufig verwendeten Programmiersprachen. Weitere Informationen finden Sie in den Artikeln der einzelnen Sprachen.
Sprache | Ursprünglicher Zweck | Imperativ | Objektorientierter | Funktional | Prozedural | Generisch | Reflektierend | Ereignisgesteuert | Sonstiges Paradigmen | Standardisiert? |
---|---|---|---|---|---|---|---|---|---|---|
1c: Enterprise -Programmiersprache | Anwendung, Rad, Geschäft, Allgemeines, Netz, Handy, Mobiltelefon | Ja | Nein | Ja | Ja | Ja | Ja | Ja | Objektbasiert, Prototyp-basierte Programmierung | Nein |
Aktionen 3.0 | Anwendung, Client-Seite, Netz | Ja | Ja | Ja | Nein | Nein | Nein | Ja | Ja 1996, ECMA | |
Ada | Anwendung, eingebettet, Echtzeit, System | Ja | Ja[2] | Nein | Ja[3] | Ja[4] | Nein | Nein | Gleichzeitig,[5] verteilt,[6] | Ja 1983, 2005, 2012, ANSI, ISO, Gost 27831-88[7] |
Aldor | Höchst Domänenspezifisch, Symbolisches Computer | Ja | Ja | Ja | Nein | Nein | Nein | Nein | Nein | |
Algol 58 | Anwendung | Ja | Nein | Nein | Nein | Nein | Nein | Nein | Nein | |
Algol 60 | Anwendung | Ja | Nein | Nein | Ja | Ja | Nein | Nein | Ja 1960, IFIP WG 2.1, Iso[8] | |
Algol 68 | Anwendung | Ja | Nein | Ja | Ja | Ja | Nein | Nein | Gleichzeitig | Ja 1968, IFIP WG 2.1, GOST 27974-88,[9] |
Ateji px | Parallele Anwendung | Nein | Ja | Nein | Nein | Nein | Nein | Nein | PI -Kalkül | Nein |
Apl | Anwendung, Datenverarbeitung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Array-orientiert, stillschweigend | Ja 1989, ISO |
Montagesprache | Allgemein | Ja | Nein | Nein | Nein | Nein | Nein | Nein | Jede, Syntax ist in der Regel hochspezifisch, im Zusammenhang mit dem Zielprozessor | Ja 1985 IEEE 694-1985[10] |
Autohotkey | GUI -Automatisierung (Makros), hochdomänenspezifisch | Ja | Ja [11] | Nein | Ja | Nein | Nein | Ja | Nein | |
Autoit | GUI-Automatisierung (MACROS), hochdomänenspezifisch | Ja | Nein | Nein | Ja | Nein | Nein | Ja | Nein | |
Ballerina | Integration, Agile, Server-Seite, Allgemeines | Ja | Ja | Ja | Ja | Nein | Nein | Ja | Gleichzeitige, transaktionale, statisch und stark typisierte Programmierung, Diagramm- / visuelle Programmierung | De facto Standard über Ballerina -Sprachspezifikation[12] |
Verprügeln | Hülse, Scripting | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Optional Pox.2[13] | |
BASIC | Anwendung, Ausbildung | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Ja 1983, ANSI, ISO, ECMA | |
Beanshell | Anwendung, Skript | Ja | Ja | Ja | Nein | Nein | Ja | Nein | Nein Im Gange, JCP[14] | |
WONNE | System | Nein | Nein | Nein | Ja | Nein | Nein | Nein | Nein | |
Blitzmax | Anwendung, Spiel | Ja | Ja | Nein | Ja | Nein | Ja | Nein | Nein | |
Boo | Anwendung, Spielskription | Nein | Ja | Nein | Nein | Nein | Nein | Nein | Nein | |
C | Anwendungssystem,[15] Allgemeinzweck, niedrige Operationen | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Ja 1989, ANSI C89, ISO C90, ISO C99, ISO C11, ISO C18[16] | |
C ++ | Anwendungssystem | Ja | Ja | Ja | Ja | Ja | Nein | Nein | Ja 1998, ISO/IEC 2003, ISO/IEC 2011, ISO/IEC 2014, ISO/IEC 2017[17] | |
C# | Anwendung, RAD, Geschäft, clientseitig, allgemein, serverseitig, web, Spielprogrammierung | Ja | Ja | Ja[18] | Ja | Ja | Ja | Ja | Strukturiert, gleichzeitig | Ja 2000, ECMA, ISO[19] |
Clarion | General, Geschäft, Web | Ja | Ja | Ja[20] | Nein | Nein | Nein | Nein | Unbekannt | |
Sauber | Allgemein | Nein | Nein | Ja | Nein | Ja | Nein | Nein | Nein | |
Clojure | Allgemein | Nein | Nein | Ja | Nein | Nein | Nein | Nein | Gleichzeitig | Nein |
Clu | Allgemein | Ja | Ja | Nein | Ja | Ja | Nein | Nein | Nein | |
Cobol | Anwendung, Geschäft | Ja | Ja | Nein | Ja | Nein | Nein | Nein | Ja 1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989: 1985, 2002, 2014 | |
Kobra | Anwendung, Geschäft, allgemein, Web | Ja | Ja | Ja | Nein | Ja | Ja | Nein | Nein | |
Coldfusion (CFML) | Netz | Nein | Ja | Nein | Ja | Nein | Nein | Nein | Nein | |
Common Lisp | Allgemein | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Erweiterbare Syntax, Array-orientiert, Syntaktische Makros, Mehrfachversand, gleichzeitig | Ja 1994, Ansi |
Comal 80 | Ausbildung | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Nein | |
Kristall | Allgemeiner Zweck | Ja | Ja[21] | Ja | Ja | Nein | Nein | Nein | Alpha -Stufe[22] | Nein |
Curry | Anwendung | Nein | Nein | Ja | Nein | Ja | Nein | Nein | faule Bewertung, Nichtdeterminismus | De facto Standard über Curry -Sprachbericht |
Cython | Anwendung, allgemein, Numerisches Computer | Ja | Ja | Ja | Nein | Nein | Ja | Nein | Aspektorientiert | Nein |
D | Anwendungssystem | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Generativ, gleichzeitig | Nein |
Pfeil | Anwendung, Web, serverseitig, mobil, IoT | Ja | Ja | Ja | Ja | Ja | Nein | Ja | Strukturiert | Ja ECMA-408 Standard |
Dylan | Anwendung | Nein | Ja | Ja | Nein | Nein | Nein | Nein | Nein | |
Eiffel | Allgemein, Anwendung, Geschäft, clientseitig, serverseitig, Web (EWF) | Ja | Ja | Ja[23][24] | Nein | Ja | Ja Erl-g | Ja Agenten | Verteilt SCOOP, Void-safe | Ja 2005, ECMA, ISO[25] |
ELAN | Ausbildung | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Strukturiert, Schrittweise Verfeinerung | Nein |
Elixier | Anwendung, verteilt | Nein | Nein | Ja | Nein | Nein | Ja | Ja | Gleichzeitig, verteilt | Nein |
Erlang | Anwendung, verteilt | Nein | Nein | Ja | Nein | Nein | Ja | Ja | Gleichzeitig, verteilt | Nein |
Euphorie | Anwendung | Nein | Nein | Nein | Ja | Nein | Ja | Nein | Nein | |
Faktor | Allgemein | Ja | Nein | Kann als als angesehen werden als | Nein | Ja | Ja | Nein | Stapelorientiert | Nein |
FP | Nein | Nein | Ja | Nein | Nein | Nein | Nein | Nein | ||
F# | Anwendung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nein | |
Weiter | Allgemein | Ja | Nein | Kann als als angesehen werden als | Nein | Nein | Nein | Nein | Stapelorientiert | Ja 1994, Ansi |
Forran | Anwendung, numerisches Computing | Ja | Ja | Ja | Ja | Ja | Nein | Nein | Array-basierte, vektorisierte, gleichzeitige, native verteilte/gemeinsam genutzte Parallelität | Ja 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) |
Freilasisch | Anwendung, numerisches Computing | Ja | Ja | Nein | Ja | Ja | Nein | Nein | Nein | |
Gambas | Anwendung | Ja | Ja | Nein | Nein | Nein | Nein | Ja | Nein | |
Game Maker -Sprache | Anwendung, Spielprogrammierung | Ja | Ja | Nein | Nein | Nein | Nein | Ja | Nein | |
GLBasic | Anwendung, Spiele | Ja | Ja | Nein | Ja | Nein | Nein | Nein | Einfacher objektorientiert | Nein |
gehen | Anwendung, Web, serverseitig | Ja | Kann als als angesehen werden als[26] | Nein | Ja | Ja | Ja | Ja | Gleichzeitig | De facto Standard über Go -Sprachspezifikation |
Gosu | Anwendung, allgemein, Skript, Web | Ja | Ja | Nein | Nein | Ja | Ja | Nein | Nein | |
GraphTalk | Anwendung | Nein | Ja | Nein | Nein | Nein | Nein | Nein | Logik | Nein |
Groovig | Anwendung, allgemein, Skript, Web | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Metaprogrammierung | Im Gange, JCP[27] |
Hafen | Anwendung, Geschäft, Datenverarbeitung, allgemein, Web | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Deklarativ | Nein |
Haskell | Anwendung | Nein | Nein | Ja | Nein | Ja | Nein | Nein | Faule Bewertung | Ja 2010, Haskell 2010[28] |
Haxe | Anwendung, allgemein, Web | Ja | Ja | Ja | Nein | Ja | Ja | Nein | Nein | |
HYPERNEXT | Anwendung, Ausbildung | Nein | Nein | Nein | Ja | Nein | Nein | Ja | Schwach tippt | Nein |
Hypertalk | Anwendung, rad, allgemein | Nein | Ja | Nein | Nein | Nein | Nein | Ja | Schwach tippt | Unbekannt |
Io | Anwendung, hostgetriebenes Skripting | Ja | Ja | Nein | Nein | Nein | Nein | Nein | Nein | |
IPL | Allgemein | Nein | Nein | Ja | Nein | Nein | Nein | Nein | Unbekannt | |
ISLISP | Allgemein | Ja | Ja | Ja | Nein | Ja | Nein | Nein | Ja 1997, 2007, ISO | |
J | Anwendung, Datenverarbeitung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Array-orientiert, Funktionsebene, stillschweigend, gleichzeitig | Nein |
JADE | Anwendung, verteilt | Ja | Ja | Nein | Nein | Nein | Nein | Nein | Nein | |
Java | Anwendung, Geschäft, clientseitig, allgemein, mobile Entwicklung, serverseitig, Web | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Gleichzeitig | De facto Standard über Java -Sprachspezifikation |
JavaScript | Clientseitig, serverseitig, Web | Ja | Ja | Ja | Ja | Nein | Ja | Ja | Prototypbasiert | Ja 1997-2021, ECMA-262 |
Freude | Forschung | Nein | Nein | Ja | Nein | Nein | Nein | Nein | Stapelorientiert | Nein |
Julia | Allgemeines technisches Computing | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Multiple Versand, Meta, Skalar und Array-orientiert, parallel, gleichzeitig, verteilt ("Cloud") | Nein |
K | Datenverarbeitung, Geschäft | Nein | Nein | Nein | Nein | Nein | Nein | Nein | Array-orientiert, stillschweigend | Unbekannt |
Kotlin | Anwendung, mobile Entwicklung, serverseitig, clientseitig, Web | Ja | Ja | Ja | Ja | Ja | Ja[29] | Ja | De facto Standard über die Kotlin -Sprachspezifikation | |
Ksh | Shell, Scripting | Ja | Ja | Nein | Ja | Nein | Nein | Nein | Mehrere Varianten, benutzerdefinierte programmierbare, dynamische ladbare Module | Ja 1992, Pox.2[13] |
Labor (G) | Anwendung, industrielle Instrumentation-Automatierung | Ja | Ja | Ja | Nein | Nein | Nein | Ja | Datenfluss, visuell | Nein |
Lispeln | Allgemein | Nein | Nein | Ja | Nein | Nein | Nein | Nein | Unbekannt | |
LiveCode | Anwendung, rad, allgemein | Nein | Ja | Nein | Nein | Nein | Nein | Ja | Schwach tippt | Nein |
Logtalk | Künstliche Intelligenz, Anwendung | Nein | Ja | Nein | Nein | Nein | Ja | Ja | Logik | Nein |
Linden -Skriptsprache (LSL) | Inhalts- und Animation in Virtual Worlds | Ja | Nein | Nein | Ja | Nein | Nein | Ja | Skripte existieren in Objekten in der Welt | De facto Referenz ist die Zweites Leben Implementierung von LSL.[30] |
Lua | Anwendung, eingebettete Skripte | Ja | Ja[31] | Ja | Ja | Nein | Ja | Nein | Aspektorientiert, prototypbasiert | Nein[32] |
Ahorn | Symbolische Berechnung, numerisches Computer | Ja | Ja | Ja | Ja | Nein | Nein | Nein | Verteilt | Nein |
Mathematica | Symbolische Sprache | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Logik, verteilt | Nein |
Matlab | Hochdomänenspezifischer, numerisches Computing | Ja | Ja | Nein | Ja | Nein | Nein | Nein | Nein | |
Modula-2 | Anwendungssystem | Ja | Nein | Nein | Nein | Ja | Nein | Nein | Ja 1996, ISO[33] | |
Modula-3 | Anwendung | Ja | Ja | Nein | Nein | Ja | Nein | Nein | Nein | |
MUMPS (M) | Allgemeine, Anwendung, Datenbanken | Ja | Für den nächsten Standard zugelassen | Nein | Ja | Teilweise durch Indirektion und Xecute | Ja | Für den nächsten Standard zugelassen | Gleichzeitig, Multi-User, NoSQL, Transaktionsverarbeitung | Ja 1977 Ansi, 1995, ISO 2020 |
Nim | Anwendung, allgemein, Web, Skript, System | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Mehrfachversand, gleichzeitig, Meta | Nein |
Oberon | Anwendungssystem | Ja | Ja | Nein | Nein | Nein | Nein | Nein | Nein | |
Objekt Pascal | Anwendung, allgemeine, mobile App, Web | Ja | Ja | Nein | Ja | Ja | Ja | Ja | Strukturiert | Nein |
Ziel c | Antrag, allgemein | Ja | Ja | Nein | Ja | Nein | Ja | Nein | Gleichzeitig | Nein |
Ocaml | Antrag, allgemein | Ja | Ja | Ja | Ja | Ja | Nein | Nein | Nein | |
Occam | Allgemein | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Gleichzeitig, prozessorientiert | Nein |
Opa | Web Applikationen | Ja | Nein | Ja | Nein | Ja | Nein | Nein | Verteilt | Nein |
OpenLisp | Allgemeiner, eingebetteter Lisp -Motor | Ja | Ja | Ja | Nein | Ja | Nein | Nein | Ja Ersetzt ISLISP, ISO | |
Oxygen | Anwendung | Ja | Ja | Nein | Nein | Ja | Nein | Nein | Nein | |
Oz-Mozart | Anwendung, Vertrieb, Bildung | Ja | Ja | Ja | Nein | Nein | Nein | Nein | Gleichzeitiger Logik | Nein |
Pascal | Anwendung, Ausbildung | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Ja 1983, ISO[34] | |
Perl | Anwendung, Skript, Textverarbeitung, Web | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Nein | |
Php | Server-Seite, Webanwendung, Web | Ja | Ja[35] | Ja[36] | Ja | Nein | Ja | Nein | De facto Standard über Sprachspezifikation und Anfragen nach Kommentaren (RFCs) | |
Pl/i | Anwendung | Ja | Ja | Nein | Ja | Nein | Nein | Nein | Ja 1969, ECMA-50 (1976) | |
Plus | Anwendung, Systementwicklung | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Nein | |
PostScript | Grafik, Seitenbeschreibung | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Übereinstimmend, stapelorientiert | Ja Als PostScript -Referenzhandbuch[37] |
Power Shell | Verwaltung, Anwendung, allgemeine, Skripten | Ja | Ja | Ja | Ja | Nein | Ja | Nein | Pipeline | Nein |
Prolog | Anwendung, künstliche Intelligenz | Nein | Nein | Ja | Ja | Nein | Ja | Nein | Logik, deklarativ | Ja 1995, ISO/IEC 13211-1: 1995, TC1 2007, TC2 2012, TC3 2017 |
PureBasic | Anwendung | Nein | Nein | Nein | Ja | Nein | Nein | Nein | Nein | |
Python | Anwendung, allgemein, Web, Skript, künstliche Intelligenz, wissenschaftliches Computing | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Aspektorientiert | De facto Standard über Python -Verbesserungsvorschläge (PEPS) |
R | Anwendung, Statistik | Ja | Ja | Ja | Ja | Nein | Ja | Nein | Nein | |
Schläger | Bildung, General, Skripten | Nein | Ja | Ja | Ja | Nein | Ja | Nein | Modular, Logik, Meta | Nein |
Raku | Skripten, Textverarbeitung, Kleberkleber | Ja | Ja | Ja | Ja | Ja | Ja | Nein | Aspektorientiert, Array, faule Bewertung, Mehrfachversand, Metaprogrammierung | Ja |
Realbasic | Anwendung | Nein | Nein | Nein | Ja | Nein | Nein | Nein | Unbekannt | |
Rebol | Verteilt | Ja | Ja | Ja | Ja | Nein | Ja | Ja | Dialiert | Nein |
Rexx | Scripting | Ja | Ja (Netrexx und Objekt rexx Dialekte) | Nein | Ja | Nein | Nein | Nein | Ja 1996 (ANSI X3.274-1996) | |
Rollenspiel | Anwendungssystem | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Nein | |
Ring | Anwendung | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Metaprogrammierung, deklarativ, Natürliche Sprache | Nein |
Rubin | Anwendung, Skripten, Web | Ja | Ja | Ja | Nein | Nein | Ja | Nein | Aspektorientiert | Ja 2011 (JIS X 3017), 2012 (ISO/IEC 30170) |
Rost | Anwendung, serverseitig, System, Web | Ja | Ja[38] | Ja | Ja | Ja | Nein[39] | Ja | Gleichzeitig | Nein |
S | Anwendung, Statistik | Ja | Ja | Ja | Ja | Nein | Nein | Nein | Nein | |
Slang | Anwendung, numerisch, Skripten | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Nein | |
Scala | Anwendung, verteilt, Web | Ja | Ja | Ja | Nein | Ja | Ja | Ja | De facto Standard über Scala -Sprachspezifikation (SLS) | |
Planen | Bildung, allgemein | Nein | Nein | Ja | Nein | Nein | Nein | Nein | Erweiterbare Syntax | Ja 1998, r6Rs |
Samen7 | Anwendung, allgemein, Skript, Web | Ja | Ja | Nein | Nein | Ja | Ja | Nein | Multi-Paradigma, erweiterbar, strukturiert | Nein |
Simula | Bildung, allgemein | Ja | Ja | Nein | Nein | Nein | Nein | Ja | Diskrete Ereignissimulation, Multi-Threaded (quasi parallele) Programmausführung | Ja 1968 |
Kleine Basic | Anwendung, Bildung, Spiele | Ja | Nein | Nein | Nein | Nein | Nein | Ja | Komponentenorientiert | Nein |
Smalltalk | Anwendung, allgemein, geschäftlich, künstliche Intelligenz, Bildung, Web | Ja | Ja | Ja | Ja | Nein | Ja | Ja | Gleichzeitig, deklarativ | Ja 1998, Ansi |
Snobol | Textverarbeitung | Nein | Nein | Nein | Nein | Nein | Nein | Nein | Unbekannt | |
Standard ml | Anwendung | Ja | Nein | Ja | Nein | Ja | Nein | Nein | Ja 1997, SML '97[40] | |
Schnell | Antrag, allgemein | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Gleichzeitig, deklarativ, Protokollorientiert | Nein |
Tcl | Anwendung, Skripten, Web | Ja | Ja | Ja | Ja | Nein | Ja | Ja | Nein | |
Visual Basic | Anwendung, RAD, Bildung, Wirtschaft, allgemein (einschließlich VBA), Büroautomatisierung | Ja | Ja | Nein | Nein | Ja | Nein | Ja | Komponentenorientiert | Nein |
Visual Basic .net | Anwendung, RAD, Bildung, Web, Geschäft, allgemein | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Strukturiert, gleichzeitig | Nein |
Visual Foxpro | Anwendung | Nein | Ja | Nein | Nein | Nein | Nein | Nein | Datenzentriert, logik | Nein |
Visueller Prolog | Anwendung | Ja | Ja | Ja | Nein | Nein | Nein | Ja | Deklarativ, Logik | Nein |
Wolfram Sprache | Symbolische Sprache | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Logik, verteilt | Nein |
Xl | Ja | Ja | Nein | Nein | Nein | Nein | Nein | Konzeptprogrammierung | Nein | |
Xojo | Anwendung, rad, allgemein, Web | Ja | Ja | Nein | Ja | Nein | Ja | Ja | Nein | |
XPath/XQuery | Datenbanken, Datenverarbeitung, Skripten | Nein | Nein | Ja | Nein | Nein | Nein | Nein | Baumorientiert | Ja 1999 W3C XPath 1, 2010 W3C XQuery 1, 2014 W3C XPath/XQuery 3.0 |
Zeek | Domänenspezifisch, Anwendung | Ja | Nein | Nein | Nein | Nein | Nein | Ja | Nein | |
ZSH | Shell, Scripting | Ja | Nein | Nein | Ja | Nein | Nein | Nein | Ladbare Module | Nein |
Typsysteme
Failsafe I/O- und Systemaufrufe
Die meisten Programmiersprachen drucken eine Fehlermeldung oder werfen einen Ausnahme wenn ein Input-Output Operation oder andere Systemanruf (z.B., Chmod, töten) scheitert, es sei denn, der Programmierer hat explizit für unterschiedliche Handhabung dieser Ereignisse angeordnet. So diese Sprachen sicher scheitern in dieser Hinsicht.
Einige (meist ältere) Sprachen erfordern, dass der Programmierer explizit Überprüfungen für diese Art von Fehlern hinzufügt. Psychologisch anders kognitive Voreingenommenheit (z.B., Optimismus -Voreingenommenheit) können Anfänger und Experten gleichermaßen betreffen, und diese Auslassungen können zu führen falsches Verhalten.
Failsafe i/o ist ein Merkmal von 1c: Enterprise, Ada (Ausnahmen), Algol (Ausnahmen oder Rückgabewert abhängig von der Funktion), Ballerina, C#, Common Lisp (System "Bedingungen und Neustart"), Curry, D (Misserfolg eingehen),[41] Erlang, Forran, gehen (es sei denn, Ergebnis wird ausdrücklich ignoriert), Gosu, Hafen, Haskell, ISLISP, Java, Julia, Kotlin, Labor, Mathematica, Ziel c (Ausnahmen), Ocaml (Ausnahmen), OpenLisp, Php, Python, Raku, Rebol, Rexx (mit optional Signal auf... Fallenhandhabung), Ring, Rubin, Rost (es sei denn, Ergebnis wird ausdrücklich ignoriert), Scala,[42] Smalltalk, Standard ml, Swift ≥ 2,0 (Ausnahmen), Tcl, Visual Basic, Visual Basic .net, Visueller Prolog, Wolfram Sprache, Xojo, XPath/XQuery (Ausnahmen) und Zeek.
Nein fehlschlägen i/o:Autohotkey (Global ERRALLEVEL muss explizit überprüft werden), C,[43] Cobol, Eiffel (Es hängt tatsächlich von der Bibliothek ab und wird nicht durch die Sprache definiert), GLBasic (wird im Allgemeinen das Programm zum Absturz bringen), Rollenspiel, Lua (Einige Funktionen warnen oder werfen keine Ausnahmen) und Perl.[44]
Einige E/A -Überprüfungen sind eingebaut C ++ (Stl iostreams Misserfolg einschalten, aber C -APIs mögen stdio oder Posix unterlassen Sie)[43] und Objekt Pascal, in Verprügeln[45] Es ist optional.
Ausdruckskraft
Sprache | Aussagenverhältnis[46] | Linienverhältnis[47] |
---|---|---|
C | 1 | 1 |
C ++ | 2.5 | 1 |
Forran | 2 | 0,8 |
Java | 2.5 | 1.5 |
Perl | 6 | 6 |
Smalltalk | 6 | 6.25 |
Python | 6 | 6.5 |
Die Literatur zu Programmiersprachen enthält eine Fülle informeller Ansprüche über ihren Verwandten AusdruckskraftEs gibt jedoch keinen Rahmen für die Formalisierung solcher Aussagen oder für die Herstellung interessanter Konsequenzen.[48] Diese Tabelle bietet zwei Ausdruckskraft aus zwei verschiedenen Quellen. Ein zusätzliches Maß für die Ausdruckskraft in GZIP -Bytes finden Sie im Spiel mit Computersprachen -Benchmarks.[49]
Benchmarks
Benchmarks sind so konzipiert, dass sie eine bestimmte Art der Arbeitsbelastung in einer Komponente oder einem System nachahmen. Die Computerprogramme, die zum Kompilieren einiger Benchmark -Daten in diesem Abschnitt verwendet wurden, wurden möglicherweise nicht vollständig optimiert, und die Relevanz der Daten ist umstritten. Die genauesten Benchmarks sind diejenigen, die an Ihre spezielle Situation angepasst werden. Die Benchmark -Daten anderer Menschen haben möglicherweise einen gewissen Wert für andere, aber die richtige Interpretation bringt viele mit sich Herausforderungen. Das Computer mit Computersprachen -Benchmarks Spiel Site warnt vor Über-Generalisierung aus Benchmark-Daten, enthält jedoch eine große Anzahl von Mikro-Benchmarks von mit Leser kontribierten Code-Snippets mit einer Schnittstelle, die verschiedene Diagramme und Tabellen generiert, in denen bestimmte Programmiersprachen und Arten von Tests verglichen werden.[52]
Zeitleiste spezifischer Sprachvergleiche
- 1974 - Vergleichsnotizen zu Algol 68 und PL/i[53] - S. H. Valentine - November 1974
- 1976 - Bewertung von Algol 68, Fröhlich J3B, Pascal, Simula 67 und Tacpol Versus Tinman - Anforderungen an eine gemeinsame Programmiersprache mit hoher Ordnung.
- 1977 - Ein Vergleich von Pascal und Algol 68[54] – Andrew S. Tanenbaum - Juni 1977.
- 1993 - fünf kleine Sprachen und wie sie wuchsen - WONNE, Pascal, Algol 68, BCPL & C – Dennis M. Ritchie - April 1993.
- 2009 - on Go - Oh, mach weiter - wie gut wird Google's gehen gegen die Brand X -Programmiersprache stehen? - David gegeben - November 2009
Siehe auch
Um alle Seiten, Unterkategorien und Bilder anzuzeigen, klicken Sie auf "►": |
---|
Listen der Programmiersprachen (19 p) |
- Vergleich der grundlegenden Anweisungen von Programmiersprachen
- Vergleich der Programmiersprachen (Syntax)
- Vergleich der Programmierparadigmen
- Vergleich der integrierten Entwicklungsumgebungen
- Vergleich der Multi-Paradigm-Programmiersprachen
- Messung der Popularität der Programmiersprache
- TIOBE index
Verweise
- ^ Ab Mai 2006 Diarmuid Pigott's Enzyklopädie von Computersprachen Archiviert 2011-02-20 im Wayback -Maschine veranstaltet bei Murdoch Universität, Australien Listet 8512 Computersprachen auf.
- ^ ADA -Referenzhandbuch, ISO/IEC 8652: 2005 (e) ed. 3, 3.9 Tagged -Typen und Typverlängerungen
- ^ ADA -Referenzhandbuch, ISO/IEC 8652: 2005 (e) ed. 3, Abschnitt 6: Unterprogramme
- ^ ADA -Referenzhandbuch, ISO/IEC 8652: 2005 (e) ed. 3, Abschnitt 12: Generische Einheiten
- ^ ADA -Referenzhandbuch, ISO/IEC 8652: 2005 (e) ed. 3, Abschnitt 9: Aufgaben und Synchronisation
- ^ ADA -Referenzhandbuch, ISO/IEC 8652: 2005 (e) ed. 3 Anhang E: Verteilte Systeme
- ^ "Vak.ru" (PDF). Archiviert von das Original (PDF) Am 2017-03-30. Abgerufen 2008-08-09.
- ^ ISO 1538: 1984
- ^ "Vak.ru" (PDF). Archiviert von das Original (PDF) Am 2017-03-24. Abgerufen 2008-08-09.
- ^ IEEE 694-1985
- ^ Objekte - Definition und Verwendung
- ^ "Ballerina Sprachspezifikation" (PDF). WSO2. 2018-05-01. Abgerufen 2018-05-03.
- ^ a b Pox.2, Shell and Utilities, Befehlsinterpreter (IEEE STD 1003.2-1992.)
- ^ JSR 274
- ^ glockenlabs.com
- ^ ANSI C89, ISO/IEC 9899: 1990, 1999, 2011, 2018
- ^ ISO/IEC 14882: 1998, 2003, 2011, 2014, 2017
- ^ CodeProject.com: Funktionale Programmierung in C# 3.0 mit Lambda -Expression
- ^ ECMA-334; ISO/IEC 23270: 2006
- ^ SofteloCity.com
- ^ "Kristall". GitHub. 2. November 2021.
- ^ "Kristall". GitHub. 2. November 2021.
- ^ Grundlegende Eiffeltelsprachenmechanismen
- ^ Verschluss (Computerprogrammierung)
- ^ ECMA-367; ISO/IEC 25436: 2006
- ^ Die Go -Programmiersprache (FAQ)
- ^ JSR 241
- ^ "The Haskell 2010 Language Report". Abgerufen 2011-12-07. Die meisten Haskell -Implementierungen erweitern den Haskell 2010 -Standard.
- ^ "M8 ist raus!".
Als erster Blick in die zukünftigen reflektierenden Fähigkeiten von Kotlin können Sie jetzt als erstklassige Objekte in Kotlin auf Eigenschaften zugreifen
- ^ Halcyon (Inworldz) und offene Sims schlagen kompatible Implementierungen mit zusätzlichen Funktionen vor.
- ^ LUA hat keinen expliziten "Objekt" -Typ (allgemeinerer Typ "Tabelle" wird für die Objektdefinition verwendet), hat jedoch eine explizite Syntax für die Objektmethode aufgerufen
- ^ Versionsveröffentlichungen werden mit einem definitiven LUA -Referenzhandbuch begleitet, das die vollständige Syntax und die Semantik zeigt. eine Referenzimplementierung und eine Testsuite. Diese werden verwendet, um andere Lua zu erzeugen VM Implementierungen und Compiler wie Kahlua und LLVM-Lua.
- ^ ISO/IEC 10514-1: 1996
- ^ ISO 7185
- ^ PHP -Handbuch, Kapitel 19. Klassen und Objekte (Php 5),
- ^ PHP -Handbuch, Kapitel 17. Funktionen
- ^ "PostScript -Sprachreferenzhandbuch" (PDF). Archiviert von das Original (PDF) Am 2017-02-18. Abgerufen 2017-02-18.
- ^ Ist Rost eine objektorientierte Programmiersprache?
- ^ Klabnik, Steve; Nichols, Carol. "Makros". Die Rost -Programmiersprache.
- ^ Smlnj.org
- ^ "Std.stdio - D Programmiersprache".
- ^ Scala läuft auf der Java Virtual Machine, von der sie das Handling zur Laufzeitausnahme erbt.
- ^ a b GCC kann auf deaktiviert warnen Errno. Neuere Versionen von Visual Studio Normalerweise Ausnahmen von fehlgeschlagener E/A bei der Verwendung werfen stdio.
- ^ Eine beträchtliche Fehlerprüfung kann optional aktiviert werden, aber standardmäßig ist Perl nicht fehlgeschlagen.
- ^
set -e
Ermöglicht die Beendigung, falls dies nicht überprüft wird Status beenden ist ungleich Null. - ^ Daten von McConnell, Steve (30. November 2009). Code vollständig. p. 100. ISBN 9780735636972. Das Aussagenverhältnis Spalte "zeigt typische Verhältnisse von Quellanweisungen in mehreren hochrangigen Sprachen zum äquivalenten Code in C. Ein höheres Verhältnis bedeutet, dass jede Codezeile in der aufgeführten Sprache mehr erreicht als jede Codezeile in C.
- ^ Das Verhältnis von Linienzähler -Tests, die jede Sprache zu der von C gewonnenen Zahl bei der Verwendung der Verwendung gewonnen haben Vergleichen mit Feature at Jon Mcloone (14. November 2012). "Codelänge in 14 Sprachen gemessen". Archiviert von das Original Am 2012-11-19. C GCC wurde für C, C ++ G ++ verwendet, wurde für C ++ verwendet, FORTRAN G95 wurde für FORTRAN verwendet, Java JDK Server wurde für Java verwendet und SmallTalk GST wurde für SmallTalk verwendet.
- ^ Fellisen, Matthias. Über die ausdrucksstarke Kraft der Programmiersprachen. ESOP '90 3. Europäisches Symposium für Programmierung. Citeseerx 10.1.1.51.4656.
- ^ "Wie Programme gemessen werden | Computersprach -Benchmarks -Spiel". Benchmarksgame-team.pages.debian.net/benchmarksgame. Abgerufen 2018-05-29.
- ^ Mandelbrot, Benoit B. (1982). Die fraktale Geometrie der Natur (Überarbeitete Ausgabe). San Francisco. ISBN 0-7167-1186-9. OCLC 7876824.
- ^ "Mandelbrot". Computersprach -Benchmarks -Spiel. Abgerufen 2021-07-09.
- ^ "Der ultimative Benchmark | Das Spiel der Computersprachen -Benchmarks". Benchmarksgame-team.pages.debian.net/benchmarksgame. Abgerufen 2018-05-29.
- ^ Valentine, S. H. (November 1974). "Vergleichsnotizen zu Algol 68 und PL/I". Das Computerjournal. 17 (4): 325–331. doi:10.1093/comjnl/17.4.325.
- ^ "Vrije Universität Amsterdam" (PDF).
Weitere Lektüre
- Cezzar, Ruknet (1995). Ein Leitfaden für Programmiersprachen: Übersicht und Vergleich. ISBN 978-0-89006-812-0.