Fear and loathing of the "perification" of Smalltalk

Alan Kay alan.kay at squeakland.org
Wed Sep 5 00:19:05 UTC 2007


I can't remember the exact terms anymore but here is the rough syntax 
of "these kinds of things" from the first FLEX language ca. 1967. * 
means iterate, + means 0 or 1.

Compound ::=    begin Body end | ` Body '

Body         ::= +{ Variable List} Expression *{ (; | , ) Expression }

These subsumed blocks and lists (and lambdas) and were treated as 
arrays, so they could be indexed. The semantics treated ";" as a 
clear top of stack operation, and "," as a keep top of stack 
operation. So the values would get pushed or popped as evaluation 
proceeded. The compiler counted commas at each level of nesting so it 
could always make the object out of the values on the stack.

Pretty simple and useful, but I didn't think it led to great 
programming particularly.

Wrt Smalltalk (or any language), I think being able to judiciously 
extend the syntax is a good idea (though often misused), but it needs 
to be done at the same level as regular programming (so it can be 
used by any base version of the language).

Cheers,

Alan 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20070904/80d3009b/attachment.htm


More information about the Squeak-dev mailing list