Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!rpi!uupsi!sunic!tut!tut!pk From: pk@tut.fi (Kellom{ki Pertti) Newsgroups: comp.lang.scheme Subject: Re: Scheme as an extension language and call/cc Message-ID: Date: 22 Aug 90 08:58:13 GMT References: <1472@tub.UUCP> Sender: news@funet.fi (#News ) Distribution: comp Organization: Tampere Univ. of Technology, Finland. Lines: 46 In-Reply-To: net@tub.UUCP's message of 21 Aug 90 17:38:40 GMT >>>>> On 21 Aug 90 15:40:13 GMT, markf@ZURICH.AI.MIT.EDU said: markf> In Kellom{ki Pertti writes: >> remember that an embedded >> extension language is not used as a general purpose programming >> language markf> I worry a little about this sort of attitude because I see it in the markf> plethora of horrendous extension languages that I have to deal with markf> every day. TeX, Postscript(tm), C-shell ... I imagine that their markf> designers all figured that they didn't need this or that feature of markf> "real" programming languages and the rest of us have to suffer for markf> their imaginations. This is why I would like to see Scheme used as an extension language. Scheme without a fully general call/cc (that is, without upward continuations, as Oliver Laumann pointed out) is a quite powerful programming language. The problem boils pretty much down to what gjc@mitech.COM said: >>>>> On 22 Aug 90 02:25:36 GMT, gjc@mitech.COM said: gjc> I would point out that fully general CALL/CC is one of those gjc> things that flies in the face even the extremely general gjc> VAX/VMS model of runtime-language support. gjc> Why? One reason is that CONDITION-HANDLING, the ability to undo side-effects gjc> while unwinding the stack, and the ability to dynamically scope the gjc> handling of machine and software generated exception cases, including gjc> instruction emulation, is very important to the workings of things. gjc> If you have a call sequence like: gjc> C->SCHEME->C->SCHEME->FORTRAN->PASCAL->SCHEME gjc> 1 2 3 4 5 6 7 gjc> you are up shits creek if you think that you can return a fully gjc> general lexical catch construct from level 7 back up to level 2 gjc> and then expect to re-enter the damn thing. This kind of calling sequence is something that I would expect to see being used when Scheme is used as an extension language. The reason why I proposed a catch-throw like mechanism is that I would rather see something that clearly states that it is not a general call/cc, rather than having a call/cc that works almost, but not quite like it should work. -- Pertti Kellom\"aki (TeX format) # These opinions are mine, Tampere Univ. of TeXnology # ALL MINE ! Software Systems Lab # (but go ahead and use them, if you like)