Path: utzoo!attcan!uunet!lll-winken!ames!ncar!boulder!sunybcs!rutgers!mit-eddie!uw-beaver!uw-june!pardo From: pardo@june.cs.washington.edu (David Keppel) Newsgroups: comp.lang.misc Subject: Re: The paradigm of Icon Summary: Smalltalk isn't "procedural". Message-ID: <6902@june.cs.washington.edu> Date: 9 Jan 89 20:22:51 GMT References: <8611@megaron.arizona.edu> Reply-To: pardo@cs.washington.edu (David Keppel) Organization: U of Washington, Computer Science, Seattle Lines: 30 >In article <2630@ficc.uu.net> peter@ficc.uu.net (Peter da Silva) writes: >>[define "procedural language": all modules have parent-child >> relationship] >>[Smalltalk uses messages, but generally have parent-child >> relationship => procedures] gudeman@arizona.edu (David Gudeman) writes: >[I suspect Smalltalk is implemented with procedure calls] A common piece of Smalltalk is method1 (boolVar) ifTrue: [block] The ``calling'' sequence is as follows: Method1 is invoked. This allocates call frame f1. The method "ifTrue:" is called with parameter "block". This allocates call frame f2. If the reciever "boolVar" is the value "True", then the argument "block" is executed IN CALL FRAME F1. Thus, the block argument (closure) is executed in the environment of some parent and this is *not* a parent-child calling order. Of course parent-child ordering *can* happen, it just isn't such a general case. ;-D on ( My own silly opinion ) Pardo -- pardo@cs.washington.edu {rutgers,cornell,ucsd,ubc-cs,tektronix}!uw-beaver!june!pardo