Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!gem.mps.ohio-state.edu!ctrsol!emory!cambridge.apple.com!bloom-beacon!eru!luth!sunic!mcsun!ukc!dcl-cs!aber-cs!pcg From: pcg@aber-cs.UUCP (Piercarlo Grandi) Newsgroups: comp.object Subject: Re: Continuations Summary: closures, the ultimate imperative and declarative... Message-ID: <1502@aber-cs.UUCP> Date: 4 Dec 89 15:40:45 GMT Reply-To: pcg@cs.aber.ac.uk (Piercarlo Grandi) Organization: Dept of CS, UCW Aberystwyth (Disclaimer: my statements are purely personal) Lines: 20 It has been my long held belief that really objects and closures are much the same thing, to a certain extent. In many ways you can simulate closures with objects (especially if you have suspend/resume) and objects with closures. My reckoning has always been that the most powerful possible entity is a triple (dictionary, code, saved state), where each member of the triple may be possibly null. If you also have the three steps for procedure invocation directly available, like in SL5, then you can do wonderful things, and even more incredible ones if you can have code executed at compile time (e.g. like in Lisp, or in the "supercompiler" concept). The BETA language has "patterns" that are really something like this. As to more mundane things, under certain respects most current popular OO languages are a step backwards from Simula 67, e.g. detach/suspend/resume, inner, and block prefixing, etc... -- Piercarlo "Peter" Grandi | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcvax!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk