A LISP compiler for FP language and its proof via algebraic semantics

  • C. Choppy
  • G. Guiho
  • S. Kaplan
Colloquium On Trees In Algebra And Programming Semantics And Data Types
Part of the Lecture Notes in Computer Science book series (LNCS, volume 185)


The aim of this paper was to describe a FP computation system, and to prove it.

This led to consider FP semantics using two different approaches : an axiomatic approach using the abstract data type theory, and a lambda-calculus and operational approach using a LISP environment. A connection was then established between them proving the validity of the latter w.r.t. the former.

In the first part, a complete formalization for a FP environment is given in the framework of algebraic abstract data types. This led straightforwardly to different semantics for FP. In particular, a thorough treatment for fixpoint definition of functions, parameterized by evaluation mechanisms was provided.

In the second part, a FP computation system is described within LISP environment. The organization of the system remained close to FP philosophy, even for the very conception of the compiler : for instance, FP functions are implemented as functions constants. An original way of implementing strictness is also provided.

Finally, this system is proven to be a model of the FP type. Notice that, the proof really dealt with the physical aspect of the compiler (not trying to further modelize it).


Functional Programming Denotational Semantic Algebraic Semantic Abstract Data Type Algebraic Specification 
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.


  1. [ADJ 78]
    Goguen, J.A., J.W. Thatcher and E.G. Wagner, An initial algebra approach to the specification, correctness, and implementation of abstract data types, in Current Trends in Programming Methodology, vol. IV Data Structuring, R. Yeh ed., Prentice-Hall, 1978.Google Scholar
  2. [AMAR 83]
    Amar, P., Winnie: un editeur de textes multifenetres extensible, Actes des Journees BIGRE, Le Cap d'Agde, France, 1983.Google Scholar
  3. [BACKUS 78]
    Backus, J., Can programming be liberated from the von Neumann style? A functional style and its algebra of programs, C.A.C.M., 21, 8, pp. 613–639, August 1978.Google Scholar
  4. [BACKUS 81a]
    Backus, J., The algebra of functional programs: function level reasoning, linear equations and extended definitions, Proc. Int. Coll. on the Formalization of programming concepts, L.N.C.S. No 107, Peniscola, 1981.Google Scholar
  5. [BACKUS 81b]
    Backus, J., Function level programs as mathematical objects, Proc. of the 1981 Conf. on Functional Programming Languages and Computer Architecture, Wentworth-by-the-Sea, New Hampshire, October 1981.Google Scholar
  6. [BIDOIT 81]
    Bidoit, M., Une méthode de présentation des types abstraits: applications, Thèse de 3eme cycle, Université Paris-Sud, Juin 1981.Google Scholar
  7. [BROY et al. 80]
    Broy, M., M. Wirsing, Algebraic definitions of a functional programming language and its semantical models, Institute fur Informatik der TUGoogle Scholar
  8. [CHOPPY et al. 83]
    Choppy, C., G. Guiho, S. Kaplan, Algebraic semantics for FP langguages, a lisp compiler and its proof, Rapport LRI No 133, Orsay, 1983.Google Scholar
  9. [GAUDEL 80]
    Gaudel, M.C., Génération et preuve de compilateurs basées sur une sémantique formelle des langages de programmation, Thèse d'Etat, Nancy, 1980.Google Scholar
  10. [GOGUEN et al. 79]
    Goguen, J.A., J.J. Tardo, An introduction to OBJ: a language for writing and testing formal algebraic program specifications, Specifications of Reliable Software Conf. Proc., Cambridge MA, April 1979.Google Scholar
  11. [GUTTAG et al. 78]
    Guttag, J., J. Horning, The algebraic specification of abstract data types, Acta Informatica, 10, pp. 27–52, 1978.CrossRefGoogle Scholar
  12. [GUTTAG et al. 81]
    Guttag, J., J. Horning, and J. Williams, FP with data abstraction and strong typing, Proc. of the 1981 Conf. on Functional Programming Languages and Computer Architecture, Wentworth-by-the-Sea, New Hampshire, October 1981.Google Scholar
  13. [HUET et al. 80]
    Huet, G., J.M. Hullot, Proof by induction in equational theories with constructors, 21st IEEE Symp. on Foundations of Computer Science, 1980.Google Scholar
  14. [KAMIN 80]
    Kamin, S., Final data type specifications: a new data type specification method, 7th ACM Symp. on Principles of Programmong Languages, Las Vegas, 1980.Google Scholar
  15. [KAPLAN 83]
    Kaplan, S., Un langage de spécification de types abstraits algébriques, Thèse de 3eme cycle, Orsay, Février 1983.Google Scholar
  16. [MANNA 74]
    Manna, Z., Mathematical theory of computation, Mc Graw Hill, 1974.Google Scholar
  17. [VOISIN 84]
    Voisin, F., CIGALE: Construction Interactive de Grammaire et Analyse Libérale d'expressions, Thèse de 3eme cycle, Université d'Orsay, France.Google Scholar
  18. [WILLIAMS 80]
    Williams, J.H., On the development of the algebra of functional programs, Report RJ2983, I.B.M. Research Laboratory, San Jose, 1980.Google Scholar
  19. [WILLIAMS 81]
    Williams, J.H., Notes on the FP style of functional programming, Lecture Notes for the Course "FP and its applications", Newcastle-upon-Tyne, July 1981.Google Scholar
  20. [WIRSING et al. 81]
    Wirsing, M., M. Broy, An analysis of semantic models for algebraic specifications, Marktoberdof Summer School on Theor. Found. of Progr. Methodology, 1981.Google Scholar
  21. [ZILLES 79]
    Zilles, S.N., An introduction to data algebras, L.N.C.S. No 86, Springer Verlag, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • C. Choppy
    • 1
  • G. Guiho
    • 1
  • S. Kaplan
    • 1
  1. 1.Laboratoire de Recherche en InformatiqueUniversité de Paris-SudOrsay - CedexFRANCE

Personalised recommendations