Other meanings of Programming language
COMPUTING
A programming language is a formal language used to write instructions executable by a computer. Languages provide rules for expressing data, computation, control flow, and interactions with hardware or software systems, while translators convert those instructions into forms a processor or runtime can carry out.
A programming language supplies a formal notation for describing computations and controlling a computer. Its syntax specifies how expressions and statements are formed; its semantics determine what those forms mean; and its type system, when present, constrains how values may be combined.1
Most languages provide variables, data types, operators, conditional statements, loops, functions, and ways to organize larger programs. They may also expose memory, files, networks, graphics, concurrency, or specialized hardware. A language is distinct from a particular implementation: the same language can have multiple compilers, interpreters, runtimes, and standard libraries.
Machine language consists of processor instructions, while assembly language gives symbolic names to those instructions. High-level languages such as Fortran, C, Java, Python, and JavaScript express operations in forms generally easier for people to read and maintain. The boundary is not absolute: some high-level languages permit direct memory manipulation, while modern systems can execute intermediate representations rather than source code directly.
Programs reach execution through translation or interpretation, often through a combination of both. A compiler analyzes source code and produces machine code, an intermediate representation, or another executable form; an interpreter or virtual machine then carries out instructions at run time.1
Compilation can enable extensive optimization before a program runs, whereas interpretation can support interactive use, portability, and dynamic behavior. Many contemporary systems combine the approaches: Java compiles to bytecode for a virtual machine, Python commonly compiles source to bytecode before execution, and JavaScript engines may interpret and just-in-time compile different parts of a program.3
Language standards describe required behavior, but implementations may differ in performance, diagnostics, available libraries, and extensions. C++ is standardized internationally, while its major compilers also provide implementation-specific features.4 Portability therefore depends on both the language rules and the surrounding platform.
Programming languages are shaped by the problems they are intended to solve. Fortran remains associated with scientific and numerical computing; C with systems programming; SQL with relational data; JavaScript with web applications; and Python with general-purpose scripting, education, science, and automation. These associations are practical traditions rather than strict limits.
Languages also differ in programming paradigms. Imperative languages describe changing state and ordered actions; object-oriented languages organize behavior around objects; functional languages emphasize expressions and controlled state; logic languages describe relationships from which answers are derived. A single language may support several paradigms.
Design involves trade-offs among safety, expressiveness, speed, portability, simplicity, and compatibility. Static typing can detect some errors before execution, while dynamic typing can make experimentation concise. Garbage collection reduces certain memory-management burdens, whereas manual or ownership-based systems offer different control and costs. No design dominates every domain.
Programming languages often operate at boundaries that are less visible than application code. Domain-specific languages such as regular expressions, shader languages, build languages, and database query languages use restricted notations to express particular kinds of work. Their limited scope can make them easier to analyze, optimize, or validate than general-purpose languages.
WebAssembly illustrates another boundary case: it is a portable compilation target and execution format designed for safe, efficient deployment on the web and beyond, rather than a conventional source language for everyday programming. ECMAScript, the standardized language underlying JavaScript, is maintained through a formal specification process and evolves through proposals reviewed by its standards community.5
Language history also includes influential experiments that did not become mainstream. Algol shaped later syntax and structured programming; Lisp pioneered powerful symbolic and metaprogramming techniques; and Smalltalk deeply influenced object-oriented environments. Their ideas persist even where their original implementations are uncommon.2
Programming languages are formal systems, but their practical meaning also depends on implementations, libraries, development tools, and the hardware or runtime environment in which programs execute.
Help improve the encyclopedia. Reports go straight to the site manager.