The next 700 programming languages

  title={The next 700 programming languages},
  author={Peter J. Landin},
  journal={Commun. ACM},
  • P. J. Landin
  • Published 1 March 1966
  • Computer Science
  • Commun. ACM
A family of unimplemented computing languages is described that is intended to span differences of application area by a unified framework. This framework dictates the rules about the uses of user-coined names, and the conventions about characterizing functional relationships. Within this framework the design of a specific language splits into two independent parts. One is the choice of written appearances of programs (or more generally, their physical representation). The other is the choice… 
On Functional Programming , Language Design , andPersistence
The principles of correspondence, correspondence and correspondence are argued to give a good approximation of some important aspects of purely functional programming languages: semantic uniformity, uncompromising support for abstraction, and no complex exceptions to restrict some language objects to second class status.
Implementing primitive datatypes for higher level languages
Experimental results indicate that although the process can be made to work, completely automated construction of high-quality designs requires further advances, and the separation of the notion of function type into signature and contextual types is an essential part of code generation.
An Abstract, Reusable, and Extensible Programming Language Design Architecture
  • H. Aït-Kaci
  • Computer Science
    In Search of Elegance in the Theory and Practice of Computation
  • 2013
The work presented here, and the tools derived from it, may be viewed as a tool box for generating language implementations with a desired set of features, and eases the automatic practical generation of programming language pioneered by Peter Landin's SECD Machine.
Prototyping parallel functional intermediate languages
This thesis outlines a framework for rapidly prototyping non-strict higher-order functional programming languages based on the traditional three-phase compiler model, where the design process is driven by the development of various semantic descriptions of the language.
HOPE: An experimental applicative language
An applicative language called HOPE is described and discussed, to produce a very simple programming language which encourages the construction of clear and manipulable programs.
On an Extension of Functional Languages for Use in Prototyping
Modularisation, where each module independently working on only certain aspects of the overall task and communicating with other modules via minimal data interfaces, is used in modularisation, the key technical concept as the Encyclopædia Britannica states.
Definitional interpreters for higher-order programming languages
The definition of a simple applicative programming language by means of an interpreter written in a similar language is considered, and the treatment of imperative features such as jumps and assignment is discussed.
Lucid : Scope Structures and Defined Functions ∗
How Lucid can be extended to allow user-defined functions and scope conventions, i.e., conventions for limiting the range or scope of the validity of definitions, is described.
Away from the Operations View of Computer Science
It is argued that classical programming languages are based on a fundamentally mistaken emphasis on the operational aspect of computation and an alternate philosophy which places the emphasis on static, extensional (mathematical) concepts such as that of function or sequence is suggested.


Correspondence between ALGOL 60 and Church's Lambda-notation
A model for computer languages and computer behavior is described, based on the notions of functional application and functional abstraction, but also having analogues for imperative language features.
The Mechanical Evaluation of Expressions
It is shown how some forms of expression in current programming languages can be modelled in Church's X-notation, and a way of "interpreting" such expressions is described, which suggests a method of analyzing the things computer users write.
~M; undefined Volume 9 / Number 3 March, 1966
  • 1966
A formal description of ALGOL 60
  • An abstract machine for designers of computing languages. (Summary) . IFIP65 Proc
  • 1965
A formal description of ALGOL 60 In Formal Language Description Languages for Computer
  • A formal description of ALGOL 60 In Formal Language Description Languages for Computer
  • 1965
An abstract machine for designers of computing languages
  • Summary). IFIP65 Proc., Part II
  • 1965
A formal description of ALGOL 60 In Formal Language Description Languages for Computer Programming
  • A formal description of ALGOL 60 In Formal Language Description Languages for Computer Programming
An abstract machine for designers of computing languages
  • Summary) . IFIP65 Proc., Part II