Mehaničko izračunavanje izraza (drugi dio)

Povijest Lispa, 30. dio

U subotu, 18. svibnja 2013. u 19 sati Kazimir Majorinc će u 30. izlaganju u nizu “Povijest Lispa” predstaviti članak Petera Landina

Mehaničko izračunavanje izraza (drugi dio)

“Forty years ago, Peter Landin wrote a profoundly influential article, “The Mechanical Evaluation of Expressions”, where, in retrospect, he outlined a substantial part of the functional-programming research programme for the following decades. This visionary article stands out for advocating the use of the λ-calculus as a metalanguage and for introducing the first abstract machine for the λ-calculus (i.e., in Landin’s terms, applicative expressions), the SECD machine. However, and in addition, it also introduces the notions of ‘syntactic sugar’ over a core programming language; of ‘closure’ to represent functional values; of circularity to implement recursion; of thunks to delay computations; of delayed evaluation; of partial evaluation; of disentangling nested applications into where-expressions at preprocessing time; of what has since been called de Bruijn indices; of sharing; of what has since been called graph reduction; of call by need; of what has since been called strictness analysis; and of domain-specific languages—all concepts that are ubiquitous in programming languages today.”

(Danvy, A Rational Deconstruction of Landin’s SECD Machine, 2004)