Numiton

NOTE: To use the advanced features of this site you need javascript turned on.

Home Knowledge Base Software Translation Evolution of Programming Languages

Evolution of Programming Languages

The main reason for inventing the computer was to use it for scientific applications. The main characteristics of these applications are the usage of simple data structures (such as vectors and matrices) and intensive floating-point arithmetic. ALGOL is representative for this type of programming languages, being specifically created for scientific applications. The efficiency of the language was such that, even if the domain required high-performance, ALGOL surpassed the assembly language.

The following are the main domains of software programming:

  • scientific applications

  • business applications

  • artificial intelligence

  • system applications

  • scripting languages

  • domain-specific languages

Most business applications developed during the second half of the 20th century used COBOL, a language that was created in 1960. This is also the first high-level language for business applications. The demands imposed upon languages used in business applications are: the capacity of producing reports, precise mechanisms for describing and storing fixed-point numbers and strings, the efficiency of fixed-point arithmetic.

The characteristic of artificial intelligence languages is that of working with symbols represented by names. The most frequently used data structure is the linked list. There's also the requirement of high flexibility for the languages in this domain, thus the dynamic execution of source code is quite frequent. The functional language LISP, created in 1965, and also its descendants were highly used in the AI domain. An alternative was the logical programming language PROLOG, created in early '70s.

System applications consist of the operating system and various programming instruments. Due to their continuous use, their efficiency is crucial. Another fundamental requirement is having access to mechanisms for the device interfaces attached to the computer. In the '60s and '70s the languages PL/S, PL/I, BLISS and Extended ALGOL were widely used in this domain, being almost completely replaced by C once the UNIX operating system was created. The requirements for system applications’ programming languages are: a level close to the assembly language, high efficiency of the generated binary code and not imposing automated checks (such as vector limits).

Scripting languages have evolved during the last three decades. They are interpreted and therefore highly flexible. Their evolution has started with the sh language, consisting of commands that called system subroutines to carry out utilitarian tasks (mainly related to files). The sh language has subsequently evolved into multiple variants such as ksh and bash. Other examples of scripting languages are awk, tcl, Perl and JavaScript. The JavaScript language is presently used on a large scale in dynamic Web pages.

Domain-specific languages (DSLs) were omnipresent during the last four decades. RPG used for reporting activities, APT for programming industrial robots and GPSS for simulations are quite representative for this domain. These languages have a restricted applicability that derives precisely from their high degree of specialization.

The following figure depicts the evolution of the most important high-level languages, starting with Plankalkül. It was originally presented in Concepts of Programming Languages by Robert Sebesta and contains various enhancements based on other sources, including Computer Languages History by Éric Lévénez.

 

 

The evolution of the high-level programming languages started from a small number of languages which defined the fundamental concepts. The FORTRAN and ALGOL languages had the greatest influence, but the evolutionary branch of CPL also contributed to the landscape of the present-day programming languages. The LISP languages evolved on a disjointed branch, but had numerous representatives.

The subsequent evolutions of the programming languages were aimed at refining and enhancing the fundamental constructions, which led to the apparition of the object-oriented languages – initially promoted by Smalltalk and which became the defining characteristic of the modern programming languages. Most notable representatives of object-oriented languages include C++, Java™, C#.