← New search

Other meanings of Programming language

COMPUTING

Programming language

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.

1957
Fortran introduced
First widely used high-level programming language
3 broad layers
Common classification
Machine, assembly, and high-level languages
2 translation models
Execution routes
Compilation and interpretation
1

Definition and structure

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.

2

How programs become executable

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.

3

Families, uses, and design choices

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.

4

Lesser-known aspects

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

Glossary

Compiler
A program that translates source code into machine code, intermediate code, or another executable representation.
Interpreter
A system that executes program instructions at run time, sometimes after translating them internally.
Syntax
The formal rules governing the arrangement of symbols in a language.
Semantics
The meaning assigned to valid expressions and statements.
Runtime
The software environment and execution period in which a program operates.

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.