Advertisement

Combinateurs Catégoriques et Implémentation des Langages Fonctionnels

  • Guy Cousineau
  • Pierre-Louis Curien
  • Michel Mauny
  • Ascánder Suárez
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 242)

Abstract

Nous présentons une technique d'implémentation des langages de programmation fonctionnels fondée sur l'utilisation des Combinateurs Catégoriques. Contrairement à d'autres techniques d'implémentation utilisant des combinateurs, notre approche ne débouche pas sur une machine à réduction mais sur une machine de type Von Neumann dont les termes formés de combinateurs catégoriques sont en quelque sorte le code. Notre machine, que nous appelons Machine abstraite Catégorique (ou CAM par abréviation de la traduction anglaise) implémente de façon naturelle l'appel par valeur mais on peut y réaliser également et de manière très efficace des évaluations de type paresseux. Cet article donne une présentation renouvelée de la CAM par rapport à [CouCurMaul] et y ajoute des optimisations récentes [MauSua].

Keywords

Nous Avons Functional Programming Instruction Machine Cartesian Closed Category Nous Pouvons 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Bibliographie

  1. [Bru]
    N.G. De Bruijn, Lambda-calculus Notation with Nameless Dummies, a Tool for Automatic Formula Manipulation, Indag Math. 34, 381–392 (1972).Google Scholar
  2. [Ca1]
    L. Cardelli, ML under Unix, Polymorphism, Vol. I,3 (Dec. 1983).Google Scholar
  3. [Ca2]
    L. Cardelli, Compiling a Functional Language, Proc. ACM Conf. on Lisp and Functional Programming, Austin (1984).Google Scholar
  4. [CouCurMau1]
    G. Cousineau, P-L. Curien, M. Mauny, The Categorical Abstract Machine, Symposium on Functional Programming Languages and Computer Architecture, Nancy sept. 85, Lect. Notes in Comput. Sci. 201 (1985) (version longue à paraître dans Science of Computer Programming).Google Scholar
  5. [CouCurMau2]
    G. Cousineau, P-L. Curien, M. Mauny, The Categorical Abstract Machine (version longue). A paraître dans Sci. of Comput. Prog.Google Scholar
  6. [CuCCL]
    P-L. Curien, Categorical Combinatory Logic, ICALP 85, Nafplion, Lect. Notes in Comput. Sci. 194 (1985).Google Scholar
  7. [CuTCCL]
    P-L. Curien, Typed Categorical Combinatory Logic, CAAP 85, Berlin, Lect. Notes in Comput. Sci. 185 (1985).Google Scholar
  8. [CuMon]
    P-L. Curien, Categorical Combinators, Sequential Algorithms and Functional Programming, Research Notes in Theoretical Computer Science, Pitman (1986).Google Scholar
  9. [GMW]
    M. Gordon, R. Milner, C. Wadsworth, Edinburgh LCF, Lect. Notes in Comput. Sci. 78, (1979).Google Scholar
  10. [Handb]
    The ML Handbook, Inria technical report, (dec 84).Google Scholar
  11. [Hend]
    P. Henderson, Functional Programming: Application and Implementation, Prentice Hall International (1980).Google Scholar
  12. [Hin]
    R. Hindley, Combinators and Lambda-calculus, a Short Outline, dans ce volume.Google Scholar
  13. [Huet]
    G. Huet, Cartesian Closed Categories and Lambda-calculus, dans ce volume.Google Scholar
  14. [Hug]
    R.J.M. Hughes, Super Combinators: A New Implementation Method for Applicative Languages, Proceedings of the 1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh (1982).Google Scholar
  15. [Lan]
    P.J. Landin, The Mechanical Evaluation of Expressions, Computer Journal 6, 308–320 (1964).Google Scholar
  16. [Mau]
    M. Mauny, Compilation des langages fonctionnels dans les Combinateurs Catégoriques, Thèse de Troisième Cycle de l'Université Paris VII (sept 1985)Google Scholar
  17. [MauSua]
    M. Mauny, A. Suárez, Implementing Functional Languages in the Categorical Abstract Machine, à paraître dans Proc. ACM Conf. on Lisp and Functional Programming (1986)Google Scholar
  18. [Mil]
    R. Milner, A proposal for Standard ML, Proc. ACM Conf. on Lisp and Functional Programming, Austin (1984).Google Scholar
  19. [Pey]
    S. Peyton-Jones, An Introduction to Fully-lazy Super Combinators, dans ce volume.Google Scholar
  20. [Plo]
    G.D. Plotkin, Call-by-name, Call-by-value and the λ-calculus, Theoret. Comput. Sci. 1, 125–159 (1975).Google Scholar
  21. [Sua]
    A. Suárez, Thèse en préparation.Google Scholar
  22. [Tu]
    D.A. Turner, A New Implementation Technique for Applicative Languages. Software Practice and Experience, Vol.9, 31–49 (1979).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Guy Cousineau
    • 1
  • Pierre-Louis Curien
    • 1
  • Michel Mauny
    • 2
  • Ascánder Suárez
    • 2
  1. 1.LITPUniversité Paris VII — CNRSParis CEDEX 05FRANCE
  2. 2.Domaine de Voluceau RocquencourtINRIALe Chesnay Cedex

Personalised recommendations