Jämförelse av programmeringsspråk
Programmeringsspråk används för att kontrollera beteendet hos en maskin (ofta en dator ). Precis som naturliga språk följer programmeringsspråk reglerna för syntax och semantik .
Det finns tusentals programmeringsspråk och nya skapas varje år. Få språk blir någonsin så populära att de används av fler än ett fåtal personer, men professionella programmerare kan använda dussintals språk i en karriär.
De flesta programmeringsspråk är inte standardiserade av en internationell (eller nationell) standard, även ofta använda sådana, som Perl eller Standard ML (namnet till trots). Anmärkningsvärda standardiserade programmeringsspråk inkluderar ALGOL , C , C++ , JavaScript (under namnet ECMAScript ), Smalltalk , Prolog , Common Lisp , Scheme ( IEEE -standard), ISLISP , Ada , Fortran , COBOL , SQL och XQuery .
Allmän jämförelse
Följande tabell jämför allmän och teknisk information för ett urval av vanliga programmeringsspråk . Se de enskilda språkens artiklar för ytterligare information.
Språk | Ursprungligt syfte | Nödvändigt | Objektorienterad | Funktionell | Procedurmässigt | Generisk | Reflekterande | Händelsestyrd | Andra paradigm | Standardiserad ? |
---|---|---|---|---|---|---|---|---|---|---|
1C: Programmeringsspråk för företag | Applikation , RAD , företag, allmänt , webb , mobil | Ja | Nej | Ja | Ja | Ja | Ja | Ja | Objektbaserad , prototypbaserad programmering | Nej |
ActionScript | Applikation, klientsida , webb | Ja | Ja | Ja | Ja | Nej | Nej | Ja | prototypbaserad |
Ja 1999-2003, ActionScript 1.0 med ES3, ActionScript 2.0 med ES3 och partiellt ES4-utkast, ActionScript 3.0 med ES4-utkast, ActionScript 3.0 med E4X |
Ada | Applikation, inbäddad , realtid , system | Ja | Ja | Nej | Ja | Ja | Nej | Nej | Samtidigt , distribuerat , |
Ja 1983, 2005, 2012, ANSI, ISO, GOST 27831-88 |
Aldor | Mycket domänspecifik , symbolisk datoranvändning | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Nej | |
ALGOL 58 | Ansökan | Ja | Nej | Nej | Nej | Nej | Nej | Nej | Nej | |
ALGOL 60 | Ansökan | Ja | Nej | Nej | Ja | Ja | Nej | Nej |
Ja 1960, IFIP WG 2.1 , ISO |
|
ALGOL 68 | Ansökan | Ja | Nej | Ja | Ja | Ja | Nej | Nej | Samverkande |
Ja 1968, IFIP WG 2.1 , GOST 27974-88 , |
Ateji PX | Parallell applikation | Nej | Ja | Nej | Nej | Nej | Nej | Nej | pi kalkyl | Nej |
APL | Ansökan, databehandling | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Array-orienterad , tyst |
Ja 1989, ISO |
assembleringsspråk | Allmän | Ja | Nej | Nej | Nej | Nej | Nej | Nej | Vilken syntax som helst är vanligtvis mycket specifik, relaterad till målprocessorn |
Ja 1985 IEEE 694-1985 |
AutoHotkey | GUI-automatisering ( makron ), mycket domänspecifik | Ja | Ja |
Nej | Ja | Nej | Nej | Ja | Nej | |
AutoIt | GUI-automatisering (makron), mycket domänspecifik | Ja | Nej | Nej | Ja | Nej | Nej | Ja | Nej | |
Ballerina | Integration, agilt, server-side , allmänt | Ja | Ja | Ja | Ja | Nej | Nej | Ja | Samtidig, transaktionell, statiskt och starkt typad programmering, diagrammatisk/visuell programmering |
De facto standard via Ballerina Language Specification |
Våldsamt slag | Skal , skript | Ja | Nej | Nej | Ja | Nej | Nej | Nej |
Eventuellt POSIX.2 |
|
GRUNDLÄGGANDE | Ansökan, utbildning | Ja | Nej | Nej | Ja | Nej | Nej | Nej |
Ja 1983, ANSI, ISO, ECMA |
|
BeanShell | Applikation, skript | Ja | Ja | Ja | Nej | Nej | Ja | Nej |
Nej Pågår, JCP |
|
SALIGHET | Systemet | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Nej | |
BlitzMax | Applikation, spel | Ja | Ja | Nej | Ja | Nej | Ja | Nej | Nej | |
Bua | Applikation, spelskript | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Nej | |
C | Applikation, system, allmänt ändamål, drift på låg nivå | Ja | Nej | Nej | Ja | Nej | Nej | Nej |
Ja 1989, ANSI C89, ISO/IEC C90, ISO/IEC C95, ISO/IEC C99, ISO/IEC C11, ISO/IEC C17, ISO/IEC C2x |
|
C++ | Applikation, system | Ja | Ja | Ja | Ja | Ja | Nej | Nej |
Ja 1998, 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 |
|
C# | Application, RAD, business, client-side, general, server-side, web, game programmering | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Strukturerad, samtidig |
Ja 2000, ECMA, ISO |
Clarion | Allmänt, affärer, webb | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Okänd | |
Rena | Allmän | Nej | Nej | Ja | Nej | Ja | Nej | Nej | Nej | |
Clojure | Allmän | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Samverkande | Nej |
CLU | Allmän | Ja | Ja | Nej | Ja | Ja | Nej | Nej | Nej | |
COBOL | Ansökan, affärer | Ja | Ja | Nej | Ja | Nej | Nej | Nej |
Ja 1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014 |
|
Kobra | Applikation, företag, allmänt, webb | Ja | Ja | Ja | Nej | Ja | Ja | Nej | Nej | |
ColdFusion (CFML) | webb | Nej | Ja | Nej | Ja | Nej | Nej | Nej | Nej | |
Vanlig Lisp | Allmän | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Utökningsbar syntax, array-orienterade , syntaktiska makron , flera utskick , samtidiga |
Ja 1994, ANSI |
COMAL 80 | Utbildning | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Nej | |
Kristall | Generell mening | Ja | Ja | Ja | Ja | Nej | Nej | Nej | Alfastadiet | Nej |
Curry | Ansökan | Nej | Nej | Ja | Nej | Ja | Nej | Nej | lat utvärdering , icke-determinism | De facto standard via Curry Language Report |
Cython | Tillämpning, allmän, numerisk beräkning | Ja | Ja | Ja | Nej | Nej | Ja | Nej | Aspektorienterad | Nej |
D | Applikation, system | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Generativ, samtidig | Nej |
Pil | Applikation, webb, serversida, mobil, IoT | Ja | Ja | Ja | Ja | Ja | Nej | Ja | Strukturerad |
Ja ECMA-408 standard |
Dylan | Ansökan | Nej | Ja | Ja | Nej | Nej | Nej | Nej | Nej | |
Eiffel | Allmänt, applikation, företag, klientsida, serversida, webb (EWF) | Ja | Ja | Ja | Nej | Ja | Ja Erl-G | Ja agenter | Distribuerad SCOOP , Void-safe |
Ja 2005, ECMA, ISO |
ELAN | Utbildning | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Strukturerad , stegvis förfining | Nej |
Elixir | Ansökan, distribuerad | Nej | Nej | Ja | Nej | Nej | Ja | Ja | Samtidigt, fördelat | Nej |
Erlang | Ansökan, distribuerad | Nej | Nej | Ja | Nej | Nej | Ja | Ja | Samtidigt, fördelat | Nej |
Eufori | Ansökan | Nej | Nej | Nej | Ja | Nej | Ja | Nej | Nej | |
Faktor | Allmän | Ja | Nej | Kan ses som | Nej | Ja | Ja | Nej | Stackorienterad | Nej |
FP | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Nej | ||
F# | Ansökan | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Nej | |
Vidare | Allmän | Ja | Nej | Kan ses som | Ja | Nej | Nej | Nej | Stackorienterad |
Ja 1994, ANSI |
Fortran | Tillämpning, numerisk beräkning | Ja | Ja | Ja | Ja | Ja | Nej | Nej | Array-baserad, vektoriserad, samtidig, infödd distribuerad/delat minne parallellism |
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) |
FreeBASIC | Tillämpning, numerisk beräkning | Ja | Ja | Nej | Ja | Ja | Nej | Nej | Nej | |
Gambas | Ansökan | Ja | Ja | Nej | Nej | Nej | Nej | Ja | Nej | |
Game Maker-språk | Applikation, spelprogrammering | Ja | Ja | Nej | Nej | Nej | Nej | Ja | Nej | |
GLBasic | Applikation, spel | Ja | Ja | Nej | Ja | Nej | Nej | Nej | Enkel objektorienterad | Nej |
Gå | Applikation, webb, serversida | Ja | Kan ses som | Nej | Ja | Ja | Ja | Ja | Samverkande | De facto standard via Go Language Specification |
Gosu | Applikation, allmänt, skript, webb | Ja | Ja | Nej | Nej | Ja | Ja | Nej | Nej | |
GraphTalk | Ansökan | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Logik | Nej |
Häftig | Applikation, allmänt, skript, webb | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Meta-programmering | Pågår, JCP |
Hamn | Applikation, affärer, databehandling, allmänt, webb | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Deklarativ | Nej |
Haskell | Ansökan | Nej | Nej | Ja | Nej | Ja | Nej | Nej | Lat utvärdering |
Ja 2010, Haskell 2010 |
Haxe | Applikation, allmänt, webb | Ja | Ja | Ja | Nej | Ja | Ja | Nej | Nej | |
HyperNext | Ansökan, utbildning | Nej | Nej | Nej | Ja | Nej | Nej | Ja | Svagt skrivet | Nej |
HyperTalk | Tillämpning, RAD, allmänt | Nej | Ja | Nej | Nej | Nej | Nej | Ja | Svagt skrivet | Okänd |
Io | Applikation, värddriven scripting | Ja | Ja | Nej | Nej | Nej | Nej | Nej | Nej | |
IPL | Allmän | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Okänd | |
ISLISP | Allmän | Ja | Ja | Ja | Nej | Ja | Nej | Nej |
Ja 1997, 2007, ISO |
|
J | Ansökan, databehandling | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Array-orienterad, funktionsnivå , tyst, samtidig | Nej |
JADE | Ansökan, distribuerad | Ja | Ja | Nej | Nej | Nej | Nej | Nej | Nej | |
Java | Applikation, affär, klientsida, allmän, mobil utveckling, serversida, webb | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Samverkande | De facto standard via Java Language Specification |
JavaScript | Klientsida, serversida, webb | Ja | Ja | Ja | Ja | Nej | Ja | Ja | prototypbaserad |
Ja 1997-2022, ECMA-262 |
Glädje | Forskning | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Stackorienterad | Nej |
jq | "awk för JSON" | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Tyst , Backtracking , Streaming , PEG | Nej |
Julia | Allmän, teknisk beräkning | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Multipel sändning, meta, skalär och array-orienterad, parallell, samtidig, distribuerad ("moln") | Nej |
K | Databehandling, affärer | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Array-orienterad, tyst | Okänd |
Kotlin | Applikation, mobilutveckling, serversida, klientsida, webb | Ja | Ja | Ja | Ja | Ja | Ja | Ja | De facto standard via Kotlin Language Specification | |
Ksh | Skal, skript | Ja | Ja | Nej | Ja | Nej | Nej | Nej | Flera varianter, anpassade programmerbara, dynamiska laddningsbara moduler |
Ja 1992, POSIX.2 |
LabVIEW (G) | Tillämpning, industriell instrumentering-automation | Ja | Ja | Ja | Nej | Nej | Nej | Ja | Dataflöde , visuellt | Nej |
Läspa | Allmän | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Okänd | |
LiveCode | Tillämpning, RAD, allmänt | Nej | Ja | Nej | Nej | Nej | Nej | Ja | Svagt skrivet | Nej |
Logtalk | Artificiell intelligens, tillämpning | Nej | Ja | Nej | Nej | Nej | Ja | Ja | Logik | Nej |
Linden Scripting Language (LSL) | Virtuella världar innehåll skript och animering | Ja | Nej | Nej | Ja | Nej | Nej | Ja | Skript finns i objekt i världen | De facto referens är Second Life- implementeringen av LSL . |
Lua | Applikation, inbäddat skript | Ja | Ja | Ja | Ja | Nej | Ja | Nej | Aspektorienterad, prototypbaserad | Nej |
Lönn | Symbolisk beräkning, numerisk beräkning | Ja | Ja | Ja | Ja | Nej | Nej | Nej | Distribuerad | Nej |
Mathematica | Symboliskt språk | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Logik, distribuerad | Nej |
MATLAB | Mycket domänspecifik, numerisk beräkning | Ja | Ja | Nej | Ja | Nej | Nej | Nej | Nej | |
Modula-2 | Applikation, system | Ja | Nej | Nej | Nej | Ja | Nej | Nej |
Ja 1996, ISO |
|
Modula-3 | Ansökan | Ja | Ja | Nej | Nej | Ja | Nej | Nej | Nej | |
Påssjuka (M) | Allmänt, tillämpning, databaser | Ja | Godkänd för nästa standard | Nej | Ja | Partially Thru Indirection och Xecute | Ja | Godkänd för nästa standard | Samtidig , multi-användare , NoSQL , transaktionsbearbetning |
Ja 1977 ANSI, 1995, ISO 2020 |
Nim | Applikation, allmänt, webb, skript, system | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Flera utskick, Samtidigt, meta | Nej |
Oberon | Applikation, system | Ja | Ja | Nej | Nej | Nej | Nej | Nej | Nej | |
Objekt Pascal | Applikation, allmänt, mobilapp, webb | Ja | Ja | Nej | Ja | Ja | Ja | Ja | Strukturerad | Nej |
Mål-C | Tillämpning, allmän | Ja | Ja | Nej | Ja | Nej | Ja | Nej | Samverkande | Nej |
OCaml | Tillämpning, allmän | Ja | Ja | Ja | Ja | Ja | Nej | Nej | Nej | |
Occam | Allmän | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Samtidigt, processorienterat | Nej |
Opa | Webbapplikationer | Ja | Nej | Ja | Nej | Ja | Nej | Nej | Distribuerad | Nej |
OpenLisp | Allmänt, Embedded Lisp Engine | Ja | Ja | Ja | Nej | Ja | Nej | Nej |
Ja Ersätter ISLISP , ISO |
|
Syre | Ansökan | Ja | Ja | Nej | Nej | Ja | Nej | Nej | Nej | |
Oz-Mozart | Ansökan, distribution, utbildning | Ja | Ja | Ja | Nej | Nej | Nej | Nej | Samtidigt, logik | Nej |
Pascal | Ansökan, utbildning | Ja | Nej | Nej | Ja | Nej | Nej | Nej |
Ja 1983, ISO |
|
Perl | Applikation, skript, textbehandling, webb | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Nej | |
PHP | Serversidan, webbapplikation, webb | Ja | Ja | Ja | Ja | Nej | Ja | Nej | De facto standard via språkspecifikation och Requests for Comments (RFC) | |
PL/I | Ansökan | Ja | Ja | Nej | Ja | Nej | Nej | Nej |
Ja 1969, ECMA-50 (1976) |
|
Plus | Applikation, systemutveckling | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Nej | |
Postskriptum | Grafik, sidbeskrivning | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Konkatenativ , stackorienterad |
Ja Som PostScript Reference Manual |
PowerShell | Administration, tillämpning, allmänt, scripting | Ja | Ja | Ja | Ja | Nej | Ja | Nej | Rörledning | Nej |
Prolog | Applikation, artificiell intelligens | Nej | Nej | Ja | Ja | Nej | Ja | Nej | Logik, deklarativ |
Ja 1995, ISO/IEC 13211-1:1995, TC1 2007, TC2 2012, TC3 2017 |
PureBasic | Ansökan | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Nej | |
Pytonorm | Applikation, allmänt, webb, skript, artificiell intelligens, vetenskaplig beräkning | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Aspektorienterad | De facto standard via Python Enhancement Proposals (PEP) |
R | Ansökan, statistik | Ja | Ja | Ja | Ja | Nej | Ja | Nej | Nej | |
Racket | Utbildning, allmänt, manus | Nej | Ja | Ja | Ja | Nej | Ja | Nej | Modulär, logik, meta | Nej |
Raku | Skript, textbearbetning, lim | Ja | Ja | Ja | Ja | Ja | Ja | Nej | Aspektorienterad, array, lat utvärdering, multipelutsändning, metaprogrammering | Ja |
RIKTIGT grundläggande | Ansökan | Nej | Nej | Nej | Ja | Nej | Nej | Nej | Okänd | |
Rebol | Distribuerad | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Uppringd | Nej |
REXX | Skript | Ja | Ja ( NetRexx och Object REXX dialekter) | Nej | Ja | Nej | Nej | Nej |
Ja 1996 (ANSI X3.274-1996) |
|
RPG | Applikation, system | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Nej | |
Ringa | Ansökan | Ja | Ja | Ja | Ja | Ja | Ja | Ja | metaprogrammering, deklarativ, naturligt språk | Nej |
Rubin | Applikation, skript, webb | Ja | Ja | Ja | Nej | Nej | Ja | Nej | Aspektorienterad |
Ja 2011(JIS X 3017), 2012(ISO/IEC 30170) |
Rost | Applikation, serversida, system, webb | Ja | Ja | Ja | Ja | Ja | Nej | Ja | Samverkande | Nej |
S | Ansökan, statistik | Ja | Ja | Ja | Ja | Nej | Nej | Nej | Nej | |
Slang | Applikation, numeriskt, skript | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Nej | |
Scala | Applikation, distribuerad, webb | Ja | Ja | Ja | Nej | Ja | Ja | Ja | De facto standard via Scala Language Specification (SLS) | |
Schema | Utbildning, allmänt | Ja | Nej | Ja | Nej | Nej | Nej | Nej | meta, töjbar-syntax |
0 Ja 1975-2013, R RS, R 1 RS, R 2 RS, R 3 RS, R 4 RS, R 5 RS, R 6 RS, R 7 RS Small Edition |
Frö7 | Applikation, allmänt, skript, webb | Ja | Ja | Nej | Nej | Ja | Ja | Nej | Multiparadigm, utbyggbart, strukturerat | Nej |
Simula | Utbildning, allmänt | Ja | Ja | Nej | Nej | Nej | Nej | Ja | diskret händelsesimulering , flertrådad (kvasiparallell) programexekvering |
Ja 1968 |
Liten Basic | Applikation, utbildning, spel | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Komponentorienterad | Nej |
Småprat | Applikation, allmänt, affärer, artificiell intelligens, utbildning, webb | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Samtidigt, deklarativt |
Ja 1998, ANSI |
SNOBOL | Textbehandling | Nej | Nej | Nej | Nej | Nej | Nej | Nej | Okänd | |
Standard ML | Ansökan | Ja | Nej | Ja | Nej | Ja | Nej | Nej |
Ja 1997, SML '97 |
|
Snabb | Tillämpning, allmän | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Samtidigt, deklarativt, protokollorienterat | Nej |
Tcl | Applikation, skript, webb | Ja | Ja | Ja | Ja | Nej | Ja | Ja | Nej | |
Visual Basic | Applikation, RAD, utbildning, företag, allmänt, (Inkluderar VBA), kontorsautomation | Ja | Ja | Nej | Nej | Ja | Nej | Ja | Komponentorienterad | Nej |
Visual Basic .NET | Applikation, RAD, utbildning, webb, företag, allmänt | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Strukturerad, samtidig | Nej |
Visual FoxPro | Ansökan | Nej | Ja | Nej | Nej | Nej | Nej | Nej | Datacentrerad, logik | Nej |
Visuell prolog | Ansökan | Ja | Ja | Ja | Nej | Nej | Nej | Ja | Deklarativ, logik | Nej |
Wolfram språk | Symboliskt språk | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Logik, distribuerad | Nej |
XL | Ja | Ja | Nej | Nej | Nej | Nej | Nej | konceptprogrammering | Nej | |
Xojo | Applikation, RAD, allmänt, webb | Ja | Ja | Nej | Ja | Nej | Ja | Ja | Nej | |
XPath / XQuery | Databaser, databehandling, scripting | Nej | Nej | Ja | Nej | Nej | Nej | Nej | Trädorienterad |
Ja 1999 W3C XPath 1, 2010 W3C XQuery 1, 2014 W3C XPath/XQuery 3.0 |
Zeek | Domänspecifik, applikation | Ja | Nej | Nej | Nej | Nej | Nej | Ja | Nej | |
Zig | Applikation, allmänt, system | Ja | Nej | Ja | Ja | Ja | Ja | Ja | Samverkande | Nej |
Zsh | Skal, skript | Ja | Nej | Nej | Ja | Nej | Nej | Nej | Laddbara moduler | Nej |
Typ system
Felsäkra I/O och systemanrop
De flesta programmeringsspråk kommer att skriva ut ett felmeddelande eller skicka ett undantag om en in-/utdataoperation eller annat systemanrop (t.ex. chmod , kill ) misslyckas, såvida inte programmeraren uttryckligen har ordnat med olika hantering av dessa händelser. Således misslyckas dessa språk säkert i detta avseende.
Vissa (oftast äldre) språk kräver att programmerare uttryckligen lägger till kontroller för dessa typer av fel. Psykologiskt kan olika kognitiva fördomar (t.ex. optimismbias ) påverka både nybörjare och experter och få dem att hoppa över dessa kontroller. Detta kan leda till felaktigt beteende .
Failsafe I/O är en funktion i 1C:Enterprise , Ada (undantag), ALGOL (undantag eller returvärde beroende på funktion), Ballerina , C# , Common Lisp ("villkor och omstarter"-system), Curry , D (kastning vid fel ), Erlang , Fortran , Go (om inte resultatet uttryckligen ignoreras), Gosu , Harbor , Haskell , ISLISP , Java , Julia , Kotlin , LabVIEW , Mathematica , Objective-C (undantag), OCaml (undantag), OpenLisp , PHP , Python , Raku , Rebol , Rexx (med valfri signal på ... fällhantering), Ring , Ruby , Rust (om inte resultatet uttryckligen ignoreras), Scala , Smalltalk , Standard ML [ citat behövs ] , Swift ≥ 2.0 (undantag), Tcl , Visual Basic , Visual Basic .NET , Visual Prolog , Wolfram Language , Xojo , XPath / XQuery (undantag) och Zeek .
No Failsafe I/O : AutoHotkey (global ErrorLevel måste uttryckligen kontrolleras), C , COBOL , Eiffel (det beror faktiskt på biblioteket och det är inte definierat av språket), GLBasic (kommer i allmänhet att få programmet att krascha), RPG , Lua (vissa funktioner varnar eller kastar inte undantag), och Perl .
Viss I/O-kontroll är inbyggd i C++ ( STL iostreams ger upphov till fel men C API:er som stdio eller POSIX gör det inte) och Object Pascal , i Bash är det valfritt.
Uttrycksförmåga
Språk | Uttalanden förhållande | Linjer förhållande |
---|---|---|
C | 1 | 1 |
C++ | 2.5 | 1 |
Fortran | 2 | 0,8 |
Java | 2.5 | 1.5 |
Perl | 6 | 6 |
Småprat | 6 | 6,25 |
Pytonorm | 6 | 6.5 |
Litteraturen om programmeringsspråk innehåller ett överflöd av informella påståenden om deras relativa uttryckskraft , men det finns inget ramverk för att formalisera sådana påståenden eller för att härleda intressanta konsekvenser. Denna tabell ger två mått på uttrycksfullhet från två olika källor. Ett ytterligare mått på uttrycksförmåga, i GZip-byte, finns i Computer Language Benchmarks Game.
Riktmärken
Benchmarks är utformade för att efterlikna en viss typ av arbetsbelastning på en komponent eller ett system. Datorprogrammen som används för att sammanställa en del av referensdata i det här avsnittet kanske inte har optimerats helt, och relevansen av data är omtvistad. De mest exakta riktmärkena är de som är anpassade till just din situation. Andra människors benchmarkdata kan ha ett visst värde för andra, men korrekt tolkning medför många utmaningar . Webbplatsen Computer Language Benchmarks Game varnar för övergeneralisering från benchmarkdata, men innehåller ett stort antal mikrobenchmarks av läsarbidragna kodsnuttar, med ett gränssnitt som genererar olika diagram och tabeller som jämför specifika programmeringsspråk och typer av tester.
Tidslinje för specifika språkjämförelser
- 1974 – Jämförande anteckningar om Algol 68 och PL/I – SH Valentine – november 1974
- 1976 – Utvärdering av ALGOL 68 , JOVIAL J3B, Pascal , Simula 67 och TACPOL kontra TINMAN – Krav på ett vanligt högordningsprogrammeringsspråk.
- 1977 – En jämförelse mellan PASCAL och ALGOL 68 – Andrew S. Tanenbaum – juni 1977.
- 1993 – Fem små språk och hur de växte – BLISS , Pascal , ALGOL 68 , BCPL & C – Dennis M. Ritchie – april 1993.
- 2009 – On Go – åh, fortsätt – Hur väl kommer Googles Go att stå emot Brand X programmeringsspråk? – David Given – november 2009
Se även
För att visa alla sidor, underkategorier och bilder klicka på "►": |
---|
|
- Jämförelse av programmeringsspråk (grundläggande instruktioner)
- Jämförelse av programmeringsspråk (syntax)
- Jämförelse av programmeringsparadigm
- Jämförelse av integrerade utvecklingsmiljöer
- Jämförelse av programmeringsspråk med flera paradigm
- Mätning av programmeringsspråkets popularitet
- TIOBE index
Vidare läsning
- Cezzar, Ruknet (1995). En guide till programmeringsspråk: översikt och jämförelse . ISBN 978-0-89006-812-0 .