Lably
Skip to content

Programming language

Language for controlling a computer

  • 24 min read
  • 9 chapters
A C program that prints Hello World when invoked
Esquivalience · CC0

Related on Lably

Through Computer program, Execution (computing) and Compiler

Execution of a program requires an implementation. There are two main approaches for implementing a programming language – compilation, where programs are translated ahead-of-time to machine code, and interpretation, where programs are directly executed. In addition to these two extremes, some implementations use hybrid approaches such as just-in-time compilation and bytecode interpreters.

The design of programming languages has been strongly influenced by computer architecture, with most imperative languages designed around the ubiquitous von Neumann architecture. While early programming languages were closely tied to the hardware, modern languages often hide hardware details via abstraction in an effort to enable better software with less effort. These languages are known as high-level languages.

Relation to natural languages

Programming languages have some similarity to natural languages in that they can allow communication of ideas between people. Programs are generally human-readable and can express complex ideas however, the kinds of ideas that programming languages can express are ultimately limited to the domain of computation.

The term computer language is sometimes used interchangeably with programming language but some contend they are different concepts. Some contend that programming languages are a subset of computer languages. Some use computer language to classify a language used in computing that is not considered a programming language. Some regard a programming language as a theoretical construct for programming an abstract machine, and a computer language as the subset thereof that runs on a physical computer, which has finite hardware resources.

John C. Reynolds emphasizes that a formal specification language is a programming language as much as any language intended for execution. He argues that textual and even graphical input formats that affect the behavior of a computer are programming languages, despite the fact they are commonly not Turing-complete, and remarks that ignorance of programming language concepts is the reason for many flaws in input formats.

Sign in to keep reading

8 more chapters are free with a Lably account.

More in Computing and information technology