Christian Queinnec and David DeRoure. Design of a concurrent and distributed language. In Robert H Halstead Jr and Takayasu Ito, editors, Parallel Symbolic Computing: Languages, Systems, and Applications, (US/Japan Workshop Proceedings), volume Lecture Notes in Computer Science 748, pages 234-259, Boston (Massachusetts, USA), October 1993.
This paper presents the idiom of Icsla (Icsla, standing for interpretation, compilation and semantics of applicative languages, is the name of a joint project between École Polytechnique and INRIA-Rocquencourt, hence the name of the designed language), a language belonging to the Lisp family and more precisely a descendant of Scheme. This dialect has been designed with respect to the following main objectives: -- It should have a very simple and understandable semantics, with few but powerful and unrestrictively combinable concepts; -- It should offer concurrency, distribution and some other modern features such as sophisticated control features while not sacrificing the variety of styles traditionally offered by Lisp.
Christian Queinnec. A library of high-level control operators. Lisp Pointers, ACM SIGPLAN Special Interest Publication on Lisp, 6(4):11-26, October 1993.
Numerous high-level control operators, with various properties, exist in the literature. To understand or compare them is difficult since their definitions use quite different formal frameworks; moreover, to our knowledge, no implementation offers them all. This paper tries to explain control operators by the often simple stack manipulation they perform. We therefore present what we think these operators are, in an executable framework derived from abstract continuations. This library is published in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For instance, we do not claim our implementation to be faithful nor we attempt to formally derive these implementations from their original definitions. The goal is to give a flavor of what control operators are, from an implementation point of view. Last but worth to say, all errors are mine.
Christian Queinnec. Continuation conscious compilation. Lisp Pointers, ACM SIGPLAN Special Interest Publication on Lisp, 6(1):2-14, January 1993.
This paper proposes some (unimplemented) ideas for the compilation of Scheme-like languages where functions may be specialized with respect to some of the continuations with which they are invoked. This allows for some optimizations, for instance, when a frame to be pushed and the frame on top of the continuation can be combined into a single and simplified frame. Among possible improvements are: intermediate data structure elimination and removal of useless calculations. Functions can therefore be compiled with respect to their near future and reorganize it when appropriate. The compilation technique is based on a program transformation named Abstract Continuation Passing Style that makes continuation (i.e., stack) frames explicit. Shape of continuations is approximated to determine which frames would gain by being combined together then partial evaluation is used to determine the behavior of combined frames. Our main results cover local deforestation-like effect as well as iterative compilation of associatively wrapped recursions.
Christian Queinnec. Literate programming from scheme to TEX. Research Report LIX RR 93.05, Laboratoire d'Informatique de l'École Polytechnique, 91128 Palaiseau Cedex, France, November 1993.
This report describes a system that allows easy insertions of Scheme, or Lisp, code towards TEX files. The originality of LiSP2TEX is that it extracts Scheme definitions from the files where they appear and wraps them appropriately within TEX macros for insertion into the documentation file. LiSP2TEX decorrelates writing documentation from programming: it is therefore possible to separately develop programs and documentations and to merge them at the end to produce up to date final documents. LiSP2TEX also has some pretty-printing capabilites to produce denotations full of greek letters. LiSP2TEX has been used for more than two years. This documentation is a reference guide to LiSP2TEX and, being itself processed by LiSP2TEX, it provides some examples of use both in source and final form.
Christian Queinnec. Designing MEROON v3. In Christian Rathke, Jürgen Kopp, Hubertus Hohl, and Harry Bretthauer, editors, Object-Oriented Programming in Lisp: Languages and Applications. A Report on the ECOOP'93 Workshop, number 788, Sankt Augustin (Germany), September 1993.
The Meroon object system was originally invented for a book to describe implementations of Lisp and Scheme. It was designed to have a pedagogical but efficient implementation, to support separate compilation yet to be powerful enough to unify all the data types of Scheme even vectors and strings without restriction of inheritance. While designing a distributed extension of Scheme 16, new needs appeared that a new release of Meroon tries to satisfy. This paper exposes these problems and how they are solved in Meroon V3. Among these new features are (i) compact dispatchers for generic functions, (ii) a new initialization protocol for a better control of mutability, (iii) a new vision of metaclasses as a code generation mechanism in relation to separate compilation. The paper first recalls the previous state of Meroon , presents the new needs then their associated solutions.
Christian Queinnec. Lisp et les objets. Normatique, (50):3, October 1993.
© C. Queinnec fecit (2012-02-19)