A programming language may be thought of as any collection of rules that, when applied to strings (or, in the case of visual programming languages, to graphical programme components), turns them to various forms of machine code output. Programming languages are a subset of computer languages that are used in the process of coding computer programmes in order to put algorithms into action.
The majority of programming languages are made up of computer-specific instructions. There are several programmable machines that, as opposed to ordinary programming languages, make use of a set of very particular instructions. Since the early 1800s, several types of machinery, including Jacquard looms, music boxes, and player pianos, have been directed in their behaviour by means of computer programmes. These machines' programming, such as the scrolls in a player piano, did not generate a distinct pattern of behaviour in response to the many inputs or situations that were presented to them.
There are now thousands of distinct programming languages available, and the number of available languages is growing by the year. While the majority of programming languages are written in an imperative form (that is, as a series of operations to carry out), there are other languages that are written in a declarative manner (i.e. the desired result is specified, not how to achieve it).
Syntax (which refers to the form) and semantics (which refers to the meaning) are often the two components that make up a description of a programming language. These components are typically described by a formal language. Other languages, like Perl, have a dominant implementation that is used as a reference, in contrast to languages like C, which are defined by a specification document (for instance, the C programming language is described by an ISO Standard). It is usual for certain languages to have both, with the fundamental language being established by a standard and extensions being obtained from the implementation that is most widely used.
The study of programming languages, including their design, implementation, analysis, characterisation, and categorization, falls within the purview of the subject of computer science known as "programming language theory."