Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!seismo!ut-sally!utah-cs!utah-orion!shebs From: shebs@utah-orion.UUCP (Stanley Shebs) Newsgroups: net.lang.lisp Subject: 3-Lisp Message-ID: <137@utah-orion.UUCP> Date: Tue, 8-Jul-86 11:08:14 EDT Article-I.D.: utah-ori.137 Posted: Tue Jul 8 11:08:14 1986 Date-Received: Wed, 9-Jul-86 02:13:31 EDT Organization: University of Utah CS Dept Lines: 26 Keywords: Lisp, 3-Lisp, purity, reflection There has been some interest in my recent but rather cryptic mention of the Lisp dialect "3-Lisp". 3-Lisp was first defined in Brian Smith's thesis from MIT in 1982 ("Reflection and Semantics in a Procedural Language", MIT LCS TR-272). It's about 500 pages of pretty heavy going, and the Maclisp implementation in the appendix is too full of bugs to be really useful. There are papers by Smith in the 84 POPL in Salt Lake City, and in the 84 Lisp conference, where he and Jim desRivieres show an implementation method. Xerox PARC Intelligent Systems Lab report ISL-1 is the reference manual (it's titled the "Interim 3-LISP Reference Manual, and is also coauthored with Jim desRivieres). I believe there are later manuals from either PARC or CSLI, which is where Smith is at these days. I have an implementation of 3-Lisp that used to work in PSL, but then I translated it to Common Lisp, and as of yet have not gotten the necessary readtable hacking to work yet (3-Lisp requires massive and tricky changes). I hope to have it finished sometime this summer (if I can find the time!). The implementation has been specially hacked to spill its guts while running, since reflection is rather a mysterious process, and one can't really understand it without seeing it in action. However, it is ridiculously slow. A good compiler for 3-Lisp would be very difficult, since reflection requires that one be able to produce, manipulate, and re-install the full state of the virtual machine at any time. stan