History of programming languages

The history of programming begins in the 19th century and is strongly influenced in its early stages by the mathematics and engineering sciences. From when a programming language is present, is actually not to evaluate clearly.

With the onset of the industrial revolution, many formerly manual activities were given more and more in control of machines. These were designed by their function cyclical ways especially for repetitive tasks. On the other hand, it has become increasingly important, the processes executed by machine must also be specified alternatives, especially since these processes could also be carried out faster and faster.

As an example of this need is the introduction of the programmable loom by Joseph Marie Jacquard in the early 19th century. The loom was given the information about the pattern to be woven by discrete omissions in the paper tape. The crafts of weaving was now a " programmer art" to be continued on a the fabric samples analog medium.

As the first work in the field of mathematics and logic programming applies a provision for the calculation of Bernoulli numbers, the generated Ada Lovelace in the years 1842/1843 for the mechanical Analytical Engine of Charles Babbage. This program could be carried out in their time by hand, because due to manufacturing problems there were in the 19th century no functional machine.

The 1930s and 1940s: Logical calculi

The lambda calculus was developed by Alonzo Church and Stephen Kleene in the 1930s. It was shown early on that the lambda calculus is a universal programming language. This would have let even then write theoretically equally powerful programs, as today in any modern programming language.

With the completion of the first electronic computers and the use of Boolean algebra it was felt further with the development of programming languages. These are in this respect about 1937 patents by Konrad Zuse, which describe a computer architecture, which is later known as Von Neumann machine. In the 1940s, Zuse presented for its programming Plankalkül done, were incorporated into the ideas from the lambda calculus.

The 1950s: The first modern programming languages

In the 50s of the last century practically used high-level languages ​​have been in the U.S. the first three more widely developed: The Oldest still in wide use language FORTRAN ( FORmula Translator) was founded in 1954 by John W. Backus et al. designed 1959, LISP ( List Processor ) by John McCarthy et al. added, which has a page on a writable in itself core and 1959 brought Grace Hopper et al. COBOL ( Common Business Oriented Language ) for commercial applications to the world. The aforementioned languages ​​exist with their successors today. Especially LISP influenced the later developed at American universities Programming strong.

The next major milestone was 1958-1960, when an international committee designed " new language for algorithms ", later called Algol 58 during a conference series one. The committee finished its evolution with the Revised Report on Algol 60 ( Algorithmic Language). In the report on the meeting, many ideas were taken that were circulating at this time in the professional community, and also two new features: firstly, the Backus -Naur Form (BNF ) for context-free description of the syntax of the programming language. Almost all of the following programming languages ​​use the BNF to represent the syntax as context-free grammar. On the other scopes were first defined.

Although Algol 60 not prevailed on political grounds in North America, primarily because IBM a counter- development in the form of PL / I offered, but partly also because of the decision not to incorporate input and output in the language definition, Algol was in the period following the Standard in the ( Western) European world. It influenced the formation of a whole generation of computer scientists and the design of subsequent languages, especially of Simula 67, Pascal, and Scheme.

The 1960s and 1970s: the development of new paradigms

In the following years, a large number of programming languages ​​developed because of the possibility and the need by the rapid advance of computer technology (see also: Digital technology, microelectronics ) was given. The most successful case further developments of existing programming languages, thus primarily " state change oriented" concepts. For example, around 1964 BASIC ( Beginner's All-purpose Symbolic Instruction Code ) was designed to facilitate students' entry into the Programming with Algol and FORTRAN.

The mid- 1960s appeared in the so-called software crisis for the first time the phenomenon that the cost of the software, the cost of the hardware. As a result, it came to the first major failure of software projects.

BASIC was finally built in the late 1970s, more affordable home computers popular. The C programming language, designed in 1972 for the newly developed Unix operating system, has its roots in Algol. She sat down opposite BASIC for general application programs; the basic functional components (kernel ) of many operating systems are programmed in C. Both languages ​​have so far drawn a lot of variants according to.

However, it emerged during this period, new concepts. Great importance was the object-oriented programming, the combined data, procedure and reference aspects in the single concept of the object. Way of thinking and concepts of object orientation first appeared in Simula 67, a language for simulation purposes, which introduced as a first language (then not called ) object-oriented method. It is told that their developers Ole -Johan Dahl and Kristen Nygaard had been working on ship simulations. This was due to the unmanageable number of parameter relations a bewildering variety of ways in which the diverse attributes of the different ships themselves could influence each other. Thus came with them the idea on to treat the different types of ships each as separate objects, each class of objects for their own data and their own behavior was itself responsible. In 1962 she met at the Norwegian Computing Center in Oslo and started a first formal description of the language, which was presented in Munich. A first prototype of a Simula compiler was already 1964. During the 1970s, Simula was used many times in practice. The object-oriented concepts of the language had great influence on the further development of programming languages.

While in simulation the new concepts were not yet clearly distinguished from its implementation, the concepts were further developed in the subsequent period. Their concepts and methods have been around since the early 1970s at Xerox Palo Alto Research Center refined Smalltalk with the language and implemented with more determination than in simulation. Smalltalk was finally generally released in the 1980s the public. Smalltalk was created as a fully dynamic system in which you could create and modify objects interactively - in contrast to the system previously used static programs. Remarkably, against their successors is the integration of the language in an innovative graphical user interface, which enabled real interaction for the first time.

After Niklaus Wirth was disappointed with his participation in Algol, Pascal, he developed together with Kathleen Jensen and sat Pascal from 1971 consistently for the study of language concepts a. After he realized how difficult the software development of major projects was to be implemented with multiple developers, he published in 1978, provided with a strict module and interface concept development Modula -2.

Prologue by Alain Colmerauer, Phillipe Roussel, and Robert Kowalski founded in 1972 logic programming and was fixed until 1975.

The 1980s: Consolidation and object orientation

In the 1970s, the Ministry of Defense of the United States was concerned about the number of more than 450 programming languages ​​that were used in his projects. Many of the programming languages ​​were also not standardized, but depends on the provider. A working group should clear this jungle and find a language that meets the military conditions of the ministry. Many existing languages ​​were checked, but in 1977 came the working group decided that none of the existing languages ​​is appropriate. After writing out four auxiliary languages, it was decided in 1980 to compose the best ideas of the draft language Ada. This design was standardized under the name MIL -STD 1815, since 1815, the eponym Ada Lovelace was born. The Ministry of Defense of the United States wrote temporarily that every software project had to be written with a share of more than 30% new code into Ada. To support the dissemination of standards, financed the U.S. Air Force, the development of the free GNAT compiler. The number of different programming languages ​​in the Ministry finally reduced to 36

Object-oriented programming began in the mid -1980s to become more popular, mainly due to the influence of C , which was designed as a syntactic extension of the C language. Bjarne Stroustrup had introduced 1983 C . Many existing programming received since that time object-oriented extensions such as Pascal or LISP (see the figure).

Published in 1988 Niklaus Wirth, who had already designed the structured programming language Pascal and the modular programming language Modula -2, the object-oriented programming language Oberon. In this all have been omitted non-essential elements of relatively powerful programming language Modula -2 and object orientation implemented by the simple concept of expanding the ( RECORD declared ) data types. Together with Jürg Gutknecht he could program an Oberon compiler and the operating and runtime system Oberon system that is as necessary in the full object orientation, equipped with an automatic garbage collection using this programming language in a short time.

In 1995, the object orientation was included as an extension in the new version of Ada 95. Was further strengthened the position of object-oriented programming by the rapidly growing popularity of graphical user interfaces, which could be very easy object-oriented programming.

Adding object-oriented extensions to languages ​​that were not originally designed, often led to problems with compatibility and maintainability of code already written. Thank pure object- oriented languages ​​, in turn, lacked procedural programming options, to which many programmers have become accustomed. To close this gap, experiments were increasingly made ​​to create new object-oriented languages ​​, at the same time allow a procedural programming. The Eiffel programming language was 1985 an early attempt in this direction. Meanwhile Eiffel but was almost entirely of Java ( 1995) displaced. The on Java and C ajar C # programming language (2001) has similar aims as Java.

The 1990s to the present: The Internet age

The rapid growth of the Internet was a new challenge. Above all, the Hypertext Markup Language (HTML ) allowed it to make a language that the appearance of the Internet. The Internet made ​​a completely new basis for the creation of software systems and thus also for the development of new programming languages. That they built itself quite early into web browsers, distinguishes the Java programming language and explained its popularity. Also, a variety of scripting languages ​​implemented for the development of Web applications through. Although none of the languages ​​brought fundamental changes in the language design itself, aspects were now as automatic garbage collection or strong static typing, and higher significance. More and more attention has also been code security and portability of the program code, this led to the development of virtual machines and runtime environments.

The advance of object-oriented programming continued on. In this context, designed for object-oriented programming graphical notation of the Unified Modeling Language ( UML) is mentioned. Due to the mostly visual modeling software development is shown in UML to a child process. It can be noted that so far only increased the level of abstraction. UML, however, with its increasing specification more and more to its own programming language.

Newer integrated, visual development environments have made significant progress in the time and cost. User interfaces can now be designed visually, code fragments can be directly accessed by clicking. Documentation to other parts of the program and libraries are directly visible. Usually there is even a so called " look-up " functionality, which still finds while writing which symbols are allowed at a certain point and corresponding selections suggests.

261624
de