Programming languages are used for controlling the behavior of a machine (often a computer). Like natural languages, programming languages follow rules for syntax and semantics.

There are thousands of programming languagesAs of May 2006 Diarmuid Pigott's Encyclopedia of Computer Languages hosted at Murdoch University, Australia lists 8512 computer languages. 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 programmers 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, C++, JavaScript (under the name ECMAScript), Smalltalk, Prolog, Common Lisp, Scheme (IEEE standard), ISLISP, Ada, Fortran, COBOL, SQL, and XQuery.

__TOC__

General comparison The following table compares general and technical information for a selection of commonly used programming languages. See the individual languages' articles for further information.

Language Original purpose Imperative Object-oriented Functional Procedural Generic Reflective Other paradigms Standardized 1C:Enterprise programming language Application, RAD, business, general, web, mobile Object-based, Prototype-based programming ActionScript Application, client-side, web prototype-based 1999-2003, ActionScript 1.0 with ES3, ActionScript 2.0 with ES3 and partial ES4 draft, ActionScript 3.0 with ES4 draft, ActionScript 3.0 with E4X Ada Application, embedded, realtime, system Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units Concurrent,Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization distributed 1983, 2005, 2012, ANSI, ISO, GOST 27831-88 Aldor Highly domain-specific, symbolic computing ALGOL 58 Application ALGOL 60 Application 1960, IFIP WG 2.1, ISO ALGOL 68 Application Concurrent 1968, IFIP WG 2.1, GOST 27974-88, Ateji PX Parallel application pi calculus APL Application, data processing Array-oriented, tacit 1989, ISO Assembly language General Any, syntax is usually highly specific, related to the target processor 1985 IEEE 694-1985 AutoHotkey GUI automation (macros), highly domain-specific AutoIt GUI automation (macros), highly domain-specific Ballerina Integration, agile, server-side, general Concurrent, transactional, statically and strongly typed, diagrammatic–visual standard via Ballerina Language Specification Bash Shell, scripting POSIX.2POSIX.2, Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.) BASIC Application, education 1983, ANSI, ISO, ECMA BeanShell Application, scripting In progress, JCP BLISS System BlitzMax Application, game Boo Application, game scripting C Application, system, general purpose, low-level operations 1989, ANSI C89, ISO/IEC C90, ISO/IEC C95, ISO/IEC C99, ISO/IEC C11, ISO/IEC C17, ISO/IEC C23 C++ Application, system Concurrent 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, ISO/IEC C++26 C# Application, RAD, business, client-side, general, server-side, web, game programming Concurrent, structured 2000, ECMA, ISOECMA-334; ISO/IEC 23270:2006 Carbon Experimental successor language to C++, designed by Google for performance-critical software Multi-paradigm Clarion General, business, web Clean General Clojure General Concurrent CLU General COBOL Application, business 1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014, 2023 Cobra Application, business, general, web ColdFusion (CFML) Web Common Lisp General Extensible syntax, Array-oriented, syntactic macros, multiple dispatch, concurrent 1994, ANSI COMAL 80 Education Crystal General purpose Concurrent Curry Application lazy evaluation, non-determinism standard via Curry Language Report Cython Application, general, numerical computing Aspect-oriented D Application, system Generative, concurrent Dart Application, web, server-side, mobile, IoT Structured ECMA-408 standard Delphi, Object Pascal General purpose Dylan Application Eiffel General, application, business, client-side, server-side, web (EWF) Closure (computer programming) Erl-G Distributed SCOOP, Void-safe 2005, ECMA, ISOECMA-367; ISO/IEC 25436:2006 ELAN Education Structured, stepwise refinement Elixir Application, distributed Concurrent, distributed Erlang Application, distributed Concurrent, distributed Euphoria Application Factor General Stack-oriented FP F# Application Forth General Stack-oriented 1994, ANSI Fortran Application, numerical computing Array-based, vectorized, concurrent, native distributed/shared-memory parallelism 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 Application, numerical computing Gambas Application Game Maker Language Application, game programming GLBasic Application, games Simple object-oriented Go Application, web, server-side Concurrent standard via Go Language Specification Gosu Application, general, scripting, web GraphTalk Application Logic Groovy Application, general, scripting, web Meta-programming In progress, JCP Harbour Application, business, data processing, general, web Declarative Haskell Application Lazy evaluation 2010, Haskell 2010 Most Haskell implementations extend the Haskell 2010 standard. Haxe Application, general, web HyperTalk Application, RAD, general Weakly typed Io Application, host-driven scripting IPL General ISLISP General 1997, 2007, ISO J Application, data processing Array-oriented, function-level, tacit, concurrent JADE Application, distributed Java Application, business, client-side, general, mobile development, server-side, web Concurrent standard via Java Language Specification JavaScript Client-side, server-side, web prototype-based ECMA-262 standard Joy Research Stack-oriented jq "awk for JSON" Tacit, Backtracking, Streaming, PEG Julia General, technical computing Multiple dispatch, meta, scalar and array-oriented, parallel, concurrent, distributed ("cloud") standard via Julia Documentation K Data processing, business Array-oriented, tacit Kotlin Application, general, mobile development, server-side, client-side, web, scripting, domain-specific Concurrent standard via Kotlin Language Specification Ksh Shell, scripting Several variants, custom programmable, dynamic loadable modules POSIX.2 LabVIEW (G) Application, industrial instrumentation-automation Dataflow, visual Lisp General LiveCode Application, RAD, general Weakly typed Logtalk Artificial intelligence, application Logic Linden Scripting Language (LSL) Virtual worlds content scripting and animation Scripts exist in in-world objects reference is the Second Life implementation of LSL.Halcyon (Inworldz) and Open Sims propose compatible implementations with additional functions. Lua Application, embedded scripting Lua has no explicit "object" type (more general type of "table" is used for object definition), but does have explicit syntax for object method calling Aspect-oriented, prototype-based Version releases are accompanied with a definitive Lua Reference Manual showing full syntax and semantics; a reference implementation, and a test suite. These are used to generate other Lua VM implementations and compilers such as Kahlua and LLVM-Lua. Maple Symbolic computation, numerical computing Distributed Mathematica Symbolic language Logic, distributed MATLAB Highly domain-specific, numerical computing Modula-2 Application, system 1996, ISOISO/IEC 10514-1:1996 Modula-3 Application MUMPS (M) General, application, databases Thru Indirection and Xecute Concurrent, multi-user, NoSQL, transaction processing 1977 ANSI, 1995, ISO 2020 Nim Application, general, web, scripting, system Multiple dispatch, concurrent, meta Oberon Application, system Object Pascal Application, general, mobile app, web Structured Objective-C Application, general Concurrent OCaml Application, general Occam General Concurrent, process-oriented Opa Web applications Distributed OpenLisp General, Embedded Lisp Engine ISLISP Oxygene Application Oz-Mozart Application, distribution, education Concurrent, logic Pascal Application, education 1983, ISOISO 7185 Perl Application, scripting, text processing, Web PHP Server-side, web application, web PHP Manual, Chapter 19. Classes and Objects (PHP 5), PHP Manual, Chapter 17. Functions standard via language specification and Requests for Comments (RFCs) PL/I Application 1969, ECMA-50 (1976) Plus Application, system development PostScript Graphics, page description Concatenative, stack-oriented standard via the PostScript Reference Manual PowerShell Administration, application, general, scripting Pipeline Prolog Application, artificial intelligence Logic, declarative 1995, ISO/IEC 13211-1:1995, TC1 2007, TC2 2012, TC3 2017 PureBasic Application Python Application, general, web, scripting, artificial intelligence, scientific computing Aspect-oriented standard via Python Enhancement Proposals (PEPs) R Application, statistics Racket Education, general, scripting Modular, logic, meta Raku Scripting, text processing, glue Aspect-oriented, array, lazy evaluation, multiple dispatch, metaprogramming REALbasic Application Rebol Distributed Dialected REXX Scripting (NetRexx and Object REXX dialects) 1996 (ANSI X3.274-1996) RPG Application, system Ruby Application, scripting, web Aspect-oriented 2011(JIS X 3017), 2012(ISO/IEC 30170) Rust Application, server-side, system, web Concurrent standard by the official Rust releases S Application, statistics S-Lang Application, numerical, scripting Scala Application, general, parallel, distributed, web Data-oriented programming, metaprogramming standard via Scala Language Specification (SLS) Scheme Education, general meta, extensible-syntax 1975-2013, R0RS, R1RS, R2RS, R3RS, R4RS, R5RS, R6RS, R7RS Small Edition Seed7 Application, general, scripting, web Multi-paradigm, extensible, structured Simula Education, general discrete event simulation, multi-threaded (quasi-parallel) program execution 1968 Small Basic Application, education, games Component-oriented Smalltalk Application, general, business, artificial intelligence, education, web Concurrent, declarative 1998, ANSI SNOBOL Text processing Splice Embedded, general, portabillity Bytecode VM Standard ML Application 1997, SML '97 Swift Application, general Concurrent, declarative, protocol-oriented Tcl Application, scripting, web V (Vlang) Application, general, system, game, web, server-side Concurrent Visual Basic Application, RAD, education, business, general, (Includes VBA), office automation Component-oriented Application, RAD, education, web, business, general Structured, concurrent Visual FoxPro Application Data-centric, logic Visual Prolog Application Declarative, logic Wolfram Language Symbolic language Logic, distributed XL concept programming Xojo Application, RAD, general, web XPath/XQuery Databases, data processing, scripting Tree-oriented 1999 W3C XPath 1, 2010 W3C XQuery 1, 2014 W3C XPath/XQuery 3.0 Zeek Domain-specific, application Zig Application, general, system Concurrent Zsh Shell, scripting Loadable modules POSIX.2

Type systems

Failsafe I/O and system calls Most programming languages will print an error message or throw an exception if an input/output operation or other system call (e.g., chmod, kill) fails, unless the programmer has explicitly arranged for different handling of these events. Thus, these languages fail safely in this regard.