Christian Queinnec. Entités à durée de vie dynamique. Revue Bigre+Globule, (59):127-139, April 1988. Actes des journées Groplan AFCET, novembre 1987 (Rouen, France).
Abstract:
Traditionnellement les entités que manipule Lisp sont allouées dans le tas plutôt que dans la pile: la raison est que leur durée de vie effective est souvent inconnue, surtout en mode interprété. Allouer en pile confère aux entités une durée de vie dynamique plutôt qu'indéfinie: l'objet disparaîtra lorsqu'il sera dépilé. Cette récupération s'effectue sans appel au Glaneur de Cellules et procure ainsi d'intéressants gains de vitesse. Les matériels spécialisés savent allouer en pile des entités qu'ils accompagnent de compteurs de références ou de démons microcodés de telle sorte qu'il est possible au dépilement de savoir si l'entité est encore utile et, par exemple, de la recopier alors dans le tas. De telles solutions sont inefficaces sur des calculateurs universels. Cet article présente et analyse une technique d'implantation d'entités à durée de vie dynamique. Ces entités sont allouées en pile, peuvent être utilisées tant qu'elles y sont et, lorsqu'elles n'y sont plus, rendent incongrue toute tentative d'accès. La technique ne nécessite pas de matériel spécialisé pour être efficace et peut être proprement compilée. Elle peut aussi être mise à profit dans d'autres langages si la sécurité d'emploi prime l'absence de garde-fous. Les performances sont analysées en fin d'article.
Christian Queinnec. Lisp, langage de calcul symbolique, chapter H 2 520, pages 1-13. Techniques de l'ingénieur, Paris (France), 1988. remis à jour en 1995.
Christian Queinnec and Jérôme Chailloux, editors. Proceedings of the First International Workshop on Lisp Evolution and Standardization, Paris (France), February 1988. AFCET.
Christian Queinnec. For the Sake of Lisp. In Christian Queinnec and Jérôme Chailloux, editors, Proceedings of the First International Workshop on Lisp Evolution and Standardization, pages 8-9, Paris (France), February 1988. AFCET, IOS Amsterdam-Springfield.
Christian Queinnec and Jérôme Chailloux, editors. Proceedings of the First International Workshop on Lisp Evolution and Standardization, Paris (France), 1988. AFCET, IOS Amsterdam-Springfield.
Christian Queinnec. Lisp en renaissance. Enjeux AFNOR, (88), March 1988.
Christian Queinnec and Pierre Cointe. An open-ended Data Representation Model for Eu-Lisp. In LFP '88 - ACM Symposium on Lisp and Functional Programming, pages 298-308, Snowbird (Utah, USA), 1988.
Abstract:
The goal of this paper is to describe an open-ended type system for Lisp with explicit and full control of bit-level data representations. This description uses a reflective architecture based on a metatype facility. This low-level formalism solves the problem of an harmonious design of a class taxonomy inside a type system. A prototype for this framework has been written in Le-Lisp and is used to build the integrated type and object systems of the EuLisp proposal.
Christian Queinnec. Le point sur Lisp. Annales des télécommunications, 43(12), December 1988.
Christian Queinnec. Dynamic Extent Objects. Lisp Pointers, ACM SIGPLAN Special Interest Publication on Lisp, 2(1):11-21, July-August-September 1988.
Abstract:
Lisp objects are heap- rather than stack-allocated because their extent is generally indefinite. Since stack-deallocation is performed without running the garbage collector, speed improvements are expected. Dedicated hardware can stack-allocate objects associated with reference counters or microcode daemons such that one can exactly know the status of the object to be deallocated and perform whatever appropriate treatment (usually a copy in the heap) according to its reachability. However such a solution is not efficient on stock hardware. This paper presents and analyses a new technique to efficiently solve this problem. It creates first class dynamic extent objects (DEO) that are stack-allocated, permits to access them only while they are in the stack and prevent to follow up dangling pointers. Every usual indefinite extent object has its counterpart as a DEO associated with the same set of operators. Finally DEO do not require dedicated hardware and may be properly compiled. The technique can be used within other programming languages. Some performance figures are discussed at the end of the paper.
© C. Queinnec fecit (2012-02-19)