Of all the high-level programming languages, LISP (List Processing Language) is the second oldest programming language. Only Fortran is older than Lisp. The basic ideas of Lisp were developed from 1956 by John McCarthy at MIT in Cambridge. The first implementations and tests
were done in 1958-1962 on an IBM machine. At
that time it was often discussed whether Lisp or Fortran should become the first high-level programming language.The very expensive core memories
at that time
and the mainly numerical use of the computers
that was initially emerging led to the decision in favor of Fortran, which should prove to be correct in the following decades. Thedirect addressing
, static memory allocation, etc. of Fortran not only allowed an economical use of the core memory, but also brought a higher efficiency in terms of computing speed
The development of LISPAfter IBM and then almost all companies relied on Fortran, Lisp continued to develop only at universities, especially at MIT and Stanford University. Finally, in 1962, a Lisp translator and John McCarthy's "Lisp 1.5 Programmers Manual" were available to the public.
Beginning with these first implementations and for many years thereafter, people had relied on the so-called "pure Lisp". The "pure Lisp" was completely free of side effects. Basically, it is about the fact that no unwanted changes of other values occur during the evaluation of the programmed expressions. In addition, one had done without the loops, DO loops or the like that are common in other higher-level languages, and tried to get by with recursion
alone. However, these two ideas and a few others were then partially abandoned.Lisp is something quite different compared to other higher-level languages of the period mentioned. While static data management predominates in most higher-level languages, in Lisp data is mainly stored dynamically or in batches, which allows almost arbitrary expansion offiles even while programs are running. In Lisp, both programs and data are lists. The elements of the lists are either further lists or atoms as the smallest semantic
elements. The language primarily processes symbolic expressions. It has many and quite efficient functions for processing lists
The syntax and semantics of LISPLisp has a very flexible syntax and semantics, which makes it easier or even possible to program complicated processes
, forexample in the context of artificial intelligence (AI). Thus, this language developed in parallel with the efforts of universities and companies in the U.S. to achieve intelligent software. In subsequent years, there were numerous implementations of Lisp, but they were not very compatible with
each other. Today, more than a dozen Lisp dialects are known, and there have been more and more deviations from some of the principles of "pure Lisp", mainly for reasons of practicality and computational efficiency. The many, quite different implementations promoted the development of Lisp, but at the same time hindered the spread of the language. Because of the large number of Lisp dialects, an extensive project was taken up in the USA in the late eighties with the goal of standardizing Lisp to a large extent. The result is Common-Lisp, which formed the basis for the later extension to Common Lisp Object System (CLOS) - with the then realized possibility of object-oriented programming.