[TUHS] Happy birthday, Niklaus Wirth!

Bakul Shah bakul at bitblocks.com
Sat Feb 17 05:24:15 AEST 2018


Thanks for the correction. A stack is sufficient for invoking functional
arguments but not for invoking functional results. And once you allow
functional results you may have to use a heap to hold their lexical
environment and GC is pretty much a requirement. Algol60 avoided GC
by disallowing functional results. C avoided GC by disallowing nesting.

> On Feb 16, 2018, at 9:40 AM, Paul McJones <paul at mcjones.org> wrote:
> 
> Actually, Algol 60 did allow functions and procedures as arguments (with correct static scoping), but not as results, so they weren’t “first class” in the Scheme sense. The Algol 60 report (along with its predecessor and successor) is available, among other places, here:
> 
> http://www.softwarepreservation.org/projects/ALGOL/standards/
> 
>> On Feb 16, 2018, Bakul Shah <bakul at bitblocks.com> wrote:
>> 
>> They did lexical scoping "right", no doubt. But back when
>> Landin first found that lambda calculus was useful for
>> modeling programming languages these concepts were not clearly
>> understood.  I do not recall reading anything about whether
>> Algol designers not allowing full lexical scopin was due to an
>> oversight or realizing that efficient implementation of
>> functional argument was not possible. May be Algol's call by
>> name was deemed sufficient? At any rate Algol's not having
>> full lexical scoping does not mean one can simply reject the
>> idea of being influenced by it. Often at the start there is
>> lots of fumbling before people get it right. May be someone
>> should ask Steele?
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180216/09d550a2/attachment.html>


More information about the TUHS mailing list