Programming languages are formal transcripts for expressing algorithms and data to make them understandable for computers. Popular programming languages include Ada, named after Lady Byron’s daughter Lovelace, who worked on Charles Babbage’s “analytical machine”; ALGOL (Algorithmic Language) APL (A Programming Language); BASIC (Beginner’s All-Purpose Symbolic Instruction Code); COBOL (Common Business-Oriented Language); FORTRAN (Formula Translation); GPSS (General Purpose Systems Simulation); LISP (List Processing); Pascal, named after the French mathematician Blaise Pascal who, in 1642, invents a calculating machine; SIMULA (Simulation Language); SNOBOL (String-Oriented Symbolic Language); SPSS (Statistical Package for the Social Sciences).
Unlike natural languages (eg, English and French), programming languages must have precise definitions of form (syntax) and meaning (semantics). Universal programming languages are used to solve problems in several areas. For example, Pascal can be used for information retrieval, numerical computation and system programming. Specialized languages have a narrower scope, being designed for specific fields of application. For example, GPSS is used for simulation studies.
The programs contain definitions as well as instructions and expressions that can be executed by the computer. A programmer can usually define data names (variables) and instructions (subroutines, functions) and, in some languages, types. A type is a set of values related to appropriate operations. For example, a series of integers will have integer sequences as values and “insert” and “delete” for operations. The instructions include assignment, input, output, and subprogram calling, as well as ways to construct instruction sequences, select instructions, and repeat them.
Because the computer directly understands operations encoded in binary numbers, programs can be written in binary. A binary number is a number expressed using numbers 0 and 1 only. At this lowest level, called machine language or executable code, each instruction and each reference to a data is a binary number.
Assembly languages allow the use of symbolic names to express instructions and data. These symbols must be transformed into numbers for the program to be executed. Advanced languages (eg, COBOL) allow the use of more practical terminology and construction for humans, and require more complex transformations of the executable code. Highly evolved languages allow the expression of what is asked rather than the enunciation of how it is to be calculated. For example, in the database query language, it is the characteristics of the required data that are specified and not the ways to retrieve it from the database.
The syntax of programs is usually precisely defined using a notation called Backus Naur notation. The structure of a program is described in the terms of its elements, which are described in the terms of their elements to them, and so on, until everything has been defined in the terms of the words of the language. This situation is comparable to the way natural language sentences are described. Once a machine language program exists, it can be improved by transforming it into an equivalent program that contains fewer or faster instructions.