Publication Date



The power and complexity of computing machinery has increased rapidly in recent times, but there has not been a corresponding development of a methodology of programming. Some steps have been made in the right direction, such as "structured programming" [Dahl, Dijkstra, and Hoare, 1972]. It can be argued that applicative languages, whose forerunner LISP, hold much promise for the development of a much more powerful programming methodology than has been achieved through the medium of conventional programming languages, which reflect far too closely the structure of the underlying machinery, and who for that reason contain many features that are inhibitive rather than helpful to program development. Assignment statements and loop constructs are manifestations of that fact. There is absolutely no necessity that the mode of operation of "one word at a time" should be reflected in high level languages. Backus [1978] points out that conventional programming languages are large, complex, and inflexible. He introduces a functional style of programming which facilitates abstraction.