programming language theory
≈ 6 min read
Names in other languages
- euProgramazio-lengoaien teoria
- Tiếng ViệtLí thuyết ngôn ngữ lập trình
- Englishprogramming language theory
- فارسیتئوری زبان برنامه نویسی
- 中文编程语言理论
- 简体中文程式语言理论
- 繁體中文程式語言理論
- 中文程式語言理論
- 中文编程语言理论
Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.
letter λ (lambda) is an unofficial symbol of the field of programming-language theory. This usage derives from the lambda calculus, a model of computation introduced by Alonzo Church in the 1930s and widely used by programming-language researchers. It graces the cover of the classic text Structure and Interpretation of Computer Programs, and the title of the so-called Lambda Papers of 1975 to 1980, written by Gerald Jay Sussman and Guy L. Steele Jr., the developers of the Scheme language. Programming language theory (PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of formal languages known as programming languages. Programming language theory is closely related to other fields including linguistics, mathematics, and software engineering.
letter λ (lambda) is an unofficial symbol of the field of programming-language theory. This usage derives from the lambda calculus, a model of computation introduced by Alonzo Church in the 1930s and widely used by programming-language researchers. It graces the cover of the classic text Structure and Interpretation of Computer Programs, and the title of the so-called Lambda Papers of 1975 to 1980, written by Gerald Jay Sussman and Guy L. Steele Jr., the developers of the Scheme language. Programming language theory (PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of formal languages known as programming languages. Programming language theory is closely related to other fields including linguistics, mathematics, and software engineering.
Timeline
Some other key events in the history of programming language theory since then: 1950s Noam Chomsky developed the Chomsky hierarchy in the field of linguistics, a discovery which has directly impacted programming language theory and other branches of computer science. 1960s In 1962, the Simula language was developed by Ole-Johan Dahl and Kristen Nygaard; it is widely considered to be the first example of an object-oriented programming language; Simula also introduced the concept of coroutines. In 1964, Peter Landin is the first to realize Church's lambda calculus can be used to model programming languages. He introduces the SECD machine which "interprets" lambda expressions. In 1965, Landin introduces the J operator, essentially a form of continuation. In 1966, Landin introduces ISWIM, an abstract computer programming language in his article The Next 700 Programming Languages. It is influential in the design of languages leading to the Haskell language. In 1966, Corrado Böhm introduced the language CUCH (Curry-Church). In 1967, Christopher Strachey publishes his influential set of lecture notes Fundamental Concepts in Programming Languages, introducing the terminology R-values, L-values, parametric polymorphism, and ad hoc polymorphism. In 1969, J. Roger Hindley publishes The Principal Type-Scheme of an Object in Combinatory Logic, later generalized into the Hindley–Milner type inference algorithm. In 1969, Tony Hoare introduces the Hoare logic, a form of axiomatic semantics. In 1969, William Alvin Howard observed that a "high-level" proof system, referred to as natural deduction, can be directly interpreted in its intuitionistic version as a typed variant of the model of computation known as lambda calculus. This became known as the Curry–Howard correspondence. 1970s In 1970, Dana Scott first publishes his work on denotational semantics. In 1972, logic programming and Prolog were developed thus allowing computer programs to be expressed as mathematical logic. A team of scientists at Xerox PARC led by Alan Kay develop Smalltalk, an object-oriented language widely known for its innovative development environment. In 1974, John C. Reynolds discovers System F. It had already been discovered in 1971 by the mathematical logician Jean-Yves Girard. From 1975, Gerald Jay Sussman and Guy Steele develop the Scheme language, a Lisp dialect incorporating lexical scoping, a unified namespace, and elements from the actor model including first-class continuations. Backus, at the 1977 Turing Award lecture, assailed the current state of industrial languages and proposed a new class of programming languages now known as function-level programming languages. In 1977, Gordon Plotkin introduces Programming Computable Functions, an abstract typed functional language. In 1978, Robin Milner introduces the Hindley–Milner type system inference algorithm for ML language. Type theory became applied as a discipline to programming languages, this application has led to great advances in type theory over the years. 1980s In 1981, Gordon Plotkin publishes his paper on structured operational semantics. In 1988, Gilles Kahn published his paper on natural semantics. There emerged process calculi, such as the Calculus of Communicating Systems of Robin Milner, and the Communicating sequential processes model of C. A. R. Hoare, as well as similar models of concurrency such as the actor model of Carl Hewitt. In 1985, the release of Miranda sparks an academic interest in lazy-evaluated purely functional programming languages. A committee was formed to define an open standard resulting in the release of the Haskell 1.0 standard in 19901. Bertrand Meyer created the methodology design by contract and incorporated it into the Eiffel language. 1990s Gregor Kiczales, Jim Des Rivieres and Daniel G. Bobrow published the book The Art of the Metaobject Protocol. Eugenio Moggi and Philip Wadler introduced the use of monads for structuring programs written in functional programming languages.
External links
Lambda the Ultimate, a community weblog for professional discussion and repository of documents on programming language theory. Great Works in Programming Languages. Collected by Benjamin C. Pierce (University of Pennsylvania). Classic Papers in Programming Languages and Logic. Collected by Karl Crary (Carnegie Mellon University). Programming Language Research. Directory by Mark Leone. λ-Calculus: Then & Now by Dana S. Scott for the ACM Turing Centenary Celebration Grand Challenges in Programming Languages. Panel session at POPL 2009.
Text derived from https://en.wikipedia.org/w/index.php?oldid=1371088521 under CC BY-SA 4.0; modifications have been made.