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
((((((((((((((((((((((((((((((((()))))))))))))))))))))))))))))))))