From queinnec@arbois.inria.fr Fri Oct 28 16:50:53 EDT 1994 Article: 15302 of comp.lang.lisp Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!news.alpha.net!uwm.edu!math.ohio-state.edu!jussieu.fr!news-rocq.inria.fr!arbois.inria.fr!queinnec From: queinnec@arbois.inria.fr (Christian Queinnec) Newsgroups: comp.lang.lisp Subject: Book on Lisp, Scheme, interpretation, implementation Date: 27 Oct 1994 13:57:20 GMT Organization: INRIA * Rocquencourt BP 105 * F-78153 LE CHESNAY CEDEX* France Lines: 83 Distribution: world Message-ID: <38obk0$efh@news-rocq.inria.fr> NNTP-Posting-Host: arbois.inria.fr Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit I am happy to announce that my new book is published by InterEditions and now available (in French). It is named Les langages Lisp and covers Lisp, Scheme and other related dialects, their interpretation, semantics and compilation. To sum it up in a few figures: 500 pages 11 chapters 11 interpreters 2 compilers. Here follows a sketch of the table of contents: Chapter 1: The basic interpreter (eval expression environment). Chapter 2: Name spaces and Recursion Some new interpreters introducing lexical and/or dynamic binding, single or multiple namespaces, various brands of global environments. Chapter 3: Escape, Continuation A bunch of control operators (catch/throw, block/return-from, unwind-protect, call/cc) all explained through an interpreter (eval exp env continuation) written in OO style. Chapter 4: Side-effect Assignment, data mutation and equality explained through another interpreter (eval exp env cont memory) written with lambdas only. Chapter 5: Denotational Semantics A simple currying of the previous interpreter which now appears as ((eval exp) env cont mem). Numerous variants such as dynamic binding, global environments. Chapter 6: Fast interpretation Precompile expressions to speed up interpretation. Introduce runtime representations of environment and continuations through various interpreters such as ((eval exp lexical.env) runtime.env continuation), ((eval exp lexical.env) runtime.env) and finally ((eval exp lexical.env)). Chapter 7: ByteCode compilation Compile expressions into byte-code instructions; invent registers, PC, stack and the like with still another compiler/interpreter (bytecode-run (bytecode-compile exp lexical.env)) Chapter 8: Eval and other reflective features. A whole chapter on eval, its implementation and cost, in all the previous interpreters/compilers. Also introduce first class environments and a complete reflective interpreter. Chapter 9: Macros Everything you want to know on macros, macroexpansion, hygien etc. in relation with (separate) compilation and interpretation. Chapter 10: Compilation towards C Another complete compiler from Scheme to C and its runtime in C. Chapter 11: An Object System (Meroonet) The innards of an Object system (based on Meroon) in Scheme. There are also corrected exercices, a bibliography and an index. All the programs (and some others) are available on: ftp.inria.fr:INRIA/Projects/icsla/Books/LiSP94Sep05.tar.gz It can alternatively be www'ed via file://ftp.inria.fr/INRIA/Projects/icsla/WWW/LiSP.html Good reading! -- ((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))) Christian Queinnec INRIA Batiment 8 Domaine de Voluceau -- BP 105 78153 Le Chesnay Cedex France Internet: Christian.Queinnec@inria.fr Tel: +33 1 39 63 57 33 Fax: +33 1 39 63 53 30 file://ftp.inria.fr/INRIA/Projects/icsla/WWW/Queinnec.html ((((((((((((((((((((((((((((((((()))))))))))))))))))))))))))))))))