[TUHS] Happy birthday, Niklaus Wirth!
bakul at bitblocks.com
Fri Feb 16 22:10:46 AEST 2018
On Fri, 16 Feb 2018 10:01:36 +0000 Tim Bradshaw <tfb at tfeb.org> wrote:
Tim Bradshaw writes:
> On 16 Feb 2018, at 02:09, Bakul Shah <bakul at bitblocks.com> wrote:
> > Scheme's lexical scope and block structure came from Algol.
> > The rest from Lisp. The joke was that the shortest and longest
> > language specs were of lisp dialects. The C++ spec may be
> > longer now.
> I don't think this is true in any meaningful sense. There are famous
> plays on words which relate Scheme to Algol (The Scheme specifications
> are 'revised^n reports on the algorithmic language scheme', and I think
> Scheme was the first standard language, anywhere, which took lexical
> scope seriously: in particular it was the first standard language with
> first-class continuations. (I'm saying 'standard language' because I'm
> sure there were research prototype implementations.).
On the second page of Sussman & Steele's "Scheme, an
Interpreter for Extended Lambda Calculus", AI Memo 349, it
says "The solution, which Hewitt also uses, is to adopt an
ALGOLesque block syntax". And it goes on to describe lexical
scoping. They even call it BLOCK! Algol is mentioned a number
of times. The discovery of correspondence between actor
semantics and lambda calculus was a happy coincidence. From
wikipedia article on the history of Scheme:
25 years later, in 1998, Sussman and Steele reflected that
the minimalism of Scheme was not a conscious design goal,
but rather the unintended outcome of the design process. "We
were actually trying to build something complicated and
discovered, serendipitously, that we had accidentally
designed something that met all our goals but was much
simpler than we had intended... we realized that the lambda
calculus, a small, simple formalism, could serve as the core
of a powerful and expressive programming language."
Now you may quibble about "came from" but I think the debt is
to Algol or at least Algol related papers. Even the connection
to lambda calculus is via Algol (Peter Landin's papers on
mechanical evaluation expressions (1964) and formal
description of Algol60 (1965)).
More information about the TUHS