Path: utzoo!attcan!uunet!mcvax!ukc!strath-cs!glasgow!jack From: jack@cs.glasgow.ac.uk (Jack Campin) Newsgroups: comp.lang.misc Subject: Re: What is B&D? (Re: Bondage and Discipline Languages) Message-ID: <2244@crete.cs.glasgow.ac.uk> Date: 20 Jan 89 16:54:51 GMT References: <2670@ficc.uu.net> Reply-To: jack@cs.glasgow.ac.uk (Jack Campin) Organization: COMANDOS Project, Glesga Yoonie, Unthank Lines: 27 Summary: Expires: Sender: Followup-To: Keywords: Erland Sommarskog said: | But to throw some new wood on the fire, consider the following: Assume | you have routine you want to call but whose name you don't know until | run-time, thus you have the name in a string. Now in which languages | can you easily do this? Interpreting languages like Lisp and Basic | support this I guess. But compiled languages? This is the usual way you load procedures in PS-algol - with orthogonal persistence you can use dynamic naming for any denotable value (dynamic naming of bitmap images for user interface objects is dead handy). It's compiled to an abstract machine code. Any other languages let you *name* a procedure at run-time for use in future runs, and save its environment of definition to make the semantics work right? This lets you store partially applied closures; we use it all the time. (Scheme *ought* to be capable of this if made persistent; maybe ML too if persistent refs were added. But I don't know another language that actually *can* do it.) -- Jack Campin * Computing Science Department, Glasgow University, 17 Lilybank Gardens, Glasgow G12 8QQ, SCOTLAND. 041 339 8855 x6045 wk 041 556 1878 ho INTERNET: jack%cs.glasgow.ac.uk@nss.cs.ucl.ac.uk USENET: jack@glasgow.uucp JANET: jack@uk.ac.glasgow.cs PLINGnet: ...mcvax!ukc!cs.glasgow.ac.uk!jack