MarketList of programming languages by type
Company Profile

List of programming languages by type

This is a list of notable programming languages, grouped by notable language attribute. As a language can have multiple attributes, the same language can be in multiple groupings.

Agent-oriented programming languages
Agent-oriented programming allows the developer to build, extend and use software agents, which are abstractions of objects that can message other agents. • ClojureF#GOALSARL == Array languages ==
Array languages
Array programming (also termed vector or multidimensional) languages generalize operations on scalars to apply transparently to vectors, matrices, and higher-dimensional arrays. • A+AdaAnalyticaAPLChapelDartmouth BASICFortran (As of Fortran 90) • FreeMatGAUSSInteractive Data Language (IDL) • JJuliaKMATLABOctavePL/IQRRakuSScilabS-LangSequenceLSpeakeasyWolfram Mathematica (Wolfram language) • X10ZPL == Aspect-oriented programming languages ==
Aspect-oriented programming languages
Aspect-oriented programming enables developers to add new functionality to code, known as "advice", without modifying that code itself; rather, it uses a pointcut to implement the advice into code blocks. • AdaAspectJGroovyNemerleRaku == Assembly languages ==
Assembly languages
Assembly languages directly correspond to a machine language (see below), so machine code instructions appear in a form understandable by humans, although there may not be a one-to-one mapping between an individual statement and an individual instruction. Assembly languages let programmers use symbolic addresses, which the assembler converts to absolute or relocatable addresses. Most assemblers also support macros and symbolic constants. == Authoring languages ==
Authoring languages
An authoring language is a programming language designed for use by a non-computer expert to easily create tutorials, websites, and other interactive computer programs. • Darwin Information Typing Architecture (DITA) • LassoPILOTTUTORAuthorware == Command-line interface languages ==
Command-line interface languages
Command-line interface (CLI) languages are also called batch languages or job control languages. Examples: • 4DOS (shell for IBM PCs) • 4OS2 (shell for IBM PCs) • Batch files for DOS and WindowsCOMMAND.COM command language for DOS and pre-Windows NT Windows • cmd.exe command language for Windows NTshkshbashzshCLIST (MVS Command List) • CMS EXECcshtcshHamilton C shellDIGITAL Command Language CLI for OpenVMS • EXEC 2ExpectfishNushellPowerShellrcRexxTACL (programming language) == Compiled languages ==
Compiled languages
These are languages typically processed by compilers, though theoretically any language can be compiled or interpreted. • ArkTSActionScriptAdaALGOL 58JOVIALNELIACALGOL 60SMALLALGOL 68Ballerina (bytecode runtime) • BASIC (including the first version of Dartmouth BASIC) • BCPLCC++C# (into CIL runtime) • Ceylon (into JVM bytecode) • CHILLClipper 5.3CLEO for Leo computers • Clojure (into JVM bytecode) • COBOLCobraCommon LispCrystalCurlD • DASL→Java, JavaScript (JS), JSP, Flex.war • Delphi (Borland's Object Pascal development system) • DIBOL (Digital COBOL) • DylanEiffelSatherUbercodeElmEmacs LispEmeraldErlangFactorFortranGAUSSGoGosu (into JVM bytecode) • Groovy (into JVM bytecode) • HaskellHarbourHolyCInform (usually story files for Glulx or Z-code) • Java (into JVM bytecode, also supports GraalVM Native Image for native binaries) • JOVIALJulia (on the fly to machine code) • Kotlin (into JVM bytecode, also supports Kotlin/Native which uses LLVM to produce binaries) • LabVIEWMercuryMesaNemerle (into intermediate language bytecode) • NimObjective-CPPascal (most implementations) • PL/IPlusPonyPython (to intermediate VM bytecode) • RPG (Report Program Generator) • RedRustScala (into JVM bytecode)) • Scheme (e.g. Gambit) • SequenceLSimulaSmalltalk platform independent VM bytecodeSwiftMLStandard ML (SML) • AliceOCamlF# (into CIL, generates runtime) • TuringV (Vlang)ValaVisual Basic (CIL JIT runtime) • Visual FoxProVisual PrologXojoZig == Concatenative programming languages ==
Concatenative programming languages
A concatenative programming language is a point-free computer programming language in which all expressions denote functions, and the juxtaposition of expressions denotes function composition. • FactorForthjq (function application is also supported) • JoyPostScriptRaku == Concurrent languages ==
Concurrent languages
Message passing languages provide language constructs for concurrency. The predominant paradigm for concurrency in mainstream languages such as Java is shared memory concurrency. Concurrent languages that make use of message passing have generally been inspired by process calculi such as communicating sequential processes (CSP) or the π-calculus. • AdaAlefAteji PXBallerinaC++ (since C++11) • ChucKCilk (through asynchronous communication) • ClojureChapelCo-array FortranConcurrent PascalCurryEEiffel (through the SCOOP mechanism, Simple Concurrent Object-Oriented Computation) • ElixirEmerald (through threads and monitors) • Erlang (through asynchronous message passing with nothing shared) • Gambit Scheme (using the Termite library) • GleamGoHaskell (through concurrent, distributed, and parallel programming across multiple machines) • JavaJoin JavaX10JuliaJoule (through message passing) • LabVIEWLimboMultiLisp (through extended parallelism capabilities) • OCamloccamoccam-πOrcOz (through shared-state and message-passing concurrency, and futures, and Mozart Programming System cross-platform Oz) • PPonyPictPython (through thread-based parallelism and process-based parallelism) • RakuRustScalaSequenceLSRV (Vlang)Unified Parallel CXProc == Constraint programming languages ==
Constraint programming languages
A constraint programming language is a declarative programming language where relationships between variables are expressed as constraints. Execution proceeds by attempting to find values for the variables which satisfy all declared constraints. • ClaireConstraint Handling RulesCHIPECLiPSeKaleidoscopeOzRaku == Contract languages ==
Contract languages
Design by contract (or contract programming) is programming using defined preconditions, postconditions, and invariants. • Ada (since Ada 2012) • CiaoClojureCobraC++ (since C++26) • DDafnyEiffelFortressKotlinMercuryOxygene (formerly Chrome and Delphi Prism) • Racket (including higher order contracts, and emphasizing that contract violations must blame the guilty party and must do so with an accurate explanation) • SatherScalaSPARK (via static analysis of Ada programs) • ValaVienna Development Method (VDM) == Curly bracket languages ==
Curly bracket languages{{anchor|curly-brace}}
A curly bracket or curly brace language has syntax that defines a block as the statements between curly brackets, a.k.a. braces, {}. This syntax originated with BCPL (1966), and was popularized by C. Many curly bracket languages descend from or are strongly influenced by C. Examples: • ABCL/c+AlefAWKArkTSBbcBCPLBallerinaCC++C#CeylonChapelChucKCilkCycloneDDart • DASL – based on Java • EECMAScriptAssemblyScriptActionScriptECMAScript for XMLJavaScriptJScriptTypeScriptGLSLGoHLSLJavaProcessingGroovyJoin JavaKotlinTeaX10LimboLPCMELNemerle (curly braces optional) • Objective-CPCASTLPerlPHPPicoPikePowerShellRRakuRustS-LangScala (curly-braces optional) • sedSoliditySuperColliderSwiftUnrealScriptV (Vlang)YorickYASSZig == Dataflow languages ==
Dataflow languages
Dataflow programming languages rely on a (usually visual) representation of the flow of data to specify the program. Often used to react to discrete events or to process streams of data. Dataflow languages include: • AnalyticaBallerinaBinary Modular Dataflow Machine (BMDFM) • CMS Pipelines • G (used in LabVIEW) • LucidMaxOzPrographPure DataReaktorStreamBase StreamSQL EventFlowSwift (parallel scripting language)VEEVHDLVisSimVvvvWebMethods Flow == Data-oriented languages ==
Data-oriented languages
Data-oriented languages provide powerful ways to search and manipulate the relations that have been described as entity relationship tables, which map one set of things into other sets. Data-oriented languages include: • Associative Programming LanguageClarionClipperdBaseGremlinMUMPSCaché ObjectScriptRETRIEVERDQLSPARQLSQLVisual FoxProWolfram Mathematica (Wolfram language) == Decision table languages ==
Decision table languages
Decision tables can be used as an aid to clarifying the logic before writing a program in any language, but in the 1960s a number of languages were developed where the main logic is expressed directly in the form of a decision table, including: • Filetab == Declarative languages ==
Declarative languages
Declarative languages express the logic of a computation without describing its control flow in detail. Declarative programming stands in contrast to imperative programming via imperative programming languages, where control flow is specified by serial orders (imperatives). (Pure) functional and logic-based programming languages are also declarative, and constitute the major subcategories of the declarative category. This section lists additional examples not in those subcategories. • AnalyticaAnt (combine declarative programming and imperative programming) • CurryCypherDatalog • Distributed Application Specification Language (DASL) (combine declarative programming and imperative programming) • ECLGremlinInform (combine declarative programming and imperative programming) • LustreMercuryMetafontMetaPostModelicaNixPrologQMLOzRDQLSequenceLSPARQLSQL (Only DQL, not DDL, DCL, and DML) • SouffléVHDL (supports declarative programming, imperative programming, and functional programming) • Wolfram Mathematica (Wolfram language) • WOQL (TerminusDB) • xBaseXSL Transformations == Embeddable languages ==
Embeddable languages
In source code Source embeddable languages embed small pieces of executable code inside a piece of free-form text, often a web page. Client-side embedded languages are limited by the abilities of the browser or intended client. They aim to provide dynamism to web pages without the need to recontact the server. Server-side embedded languages are much more flexible, since almost any language can be built into a server. The aim of having fragments of server-side code embedded in a web page is to generate additional markup dynamically; the code itself disappears when the page is served, to be replaced by its output. Server side PHPVBScriptTcl – server-side in NaviServer and an essential component in electronics industry systems The above examples are particularly dedicated to this purpose. A large number of other languages, such as Erlang, Scala, Perl and Ruby can be adapted (for instance, by being made into Apache modules). Client side ActionScriptJavaScript (aka ECMAScript or JScript)VBScript (Windows only) In object code A wide variety of dynamic or scripting languages can be embedded in compiled executable code. Basically, object code for the language's interpreter needs to be linked into the executable. Source code fragments for the embedded language can then be passed to an evaluation function as strings. Application control languages can be implemented this way, if the source code is input by the user. Languages with small interpreters are preferred. • AngelScriptCh • EEL • Iojq (C and Go) • JuliaLuaLuauPythonRuby (via mruby) • SquirrelTcl == Educational programming languages ==
Educational programming languages
Languages developed primarily for the purpose of teaching and learning of programming. • AliceBlocklyCatrobatCOMALElanEmeraldEzhilHedyLogoModula-2PascalPL/CRacketSchemeScratchSnap!SP/kTuringWolfram Mathematica (Wolfram language) == Esoteric languages ==
Esoteric languages
An esoteric programming language is a programming language designed as a test of the boundaries of computer programming language design, as a proof of concept, or as a joke. • BeatnikBefungeBrainfuckChefINTERCALLOLCODEMalbolgePietShakespeareWhitespaceBracketLang == Extension languages ==
Extension languages
Extension programming languages are languages embedded into another program and used to harness its features in extension scripts. • AutoLISP (specific to AutoCAD) • BeanShellCALC/AL (C/SIDE) • GuileEmacs LispJavaScript and some dialects, e.g., JScriptLua (embedded in many games) • OpenCL (extension of C and C++ to use the GPU and parallel extensions of the CPU) • OptimJ (extension of Java with language support for writing optimization models and powerful abstractions for bulk data processing) • PerlPikePowerShellPython (embedded in Maya, Blender, and other 3-D animation packages) • RexxRuby (Google SketchUp) • S-LangSQLSquirrelTclVim script (vim) • Visual Basic for Applications (VBA) == Fourth-generation languages ==
tickerdossier.comtickerdossier.substack.com