Programming languages

A programming language is a formal language that consists of a collection of strings that may be used to generate different types of machine code output. The term "programming language" refers to a certain kind of computer language that is used to implement algorithms in computer programming.

The majority of programming languages are made up of computer-related instructions. Rather than using generic programming languages, there are certain programmable devices that utilise a set of specialised instructions rather than general programming languages. The use of programming to control the behaviour of machines such as Jacquard looms, music boxes, and player pianos has been around since the early nineteenth century. It was discovered that the programmes for these devices (such as the scrolls of a player piano) did not behave differently in response to various inputs or circumstances.

It is estimated that thousands of distinct programming languages have been developed, with new ones being developed every year. Unlike many programming languages, which are expressed in an imperative form (i.e., as a list of operations to be performed), some programming languages are written in a declarative format (i.e. the desired result is specified, not how to achieve it).

Most programmers divide programming language description into two parts: syntax (form) and semantics. Syntax is the formal description of a programming language (meaning). Some scripting languages are defined by a requirement specification (for example, the C programming language is described by an ISO Standard), while other programming languages (for example, Perl) are defined by a dominant implementation that is regarded as a standard. The core language is specified by a standard, and extensions adopted from the dominant implementation are typical in certain languages.

Programming language theory is a branch of computer science that studies the design, implementation and analysis of programming languages as well as the characterisation and categorization of these languages.