A LISP compiler for FP language and its proof via algebraic semantics
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).
KeywordsFunctional Programming Denotational Semantic Algebraic Semantic Abstract Data Type Algebraic Specification
- [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
- [AMAR 83]Amar, P., Winnie: un editeur de textes multifenetres extensible, Actes des Journees BIGRE, Le Cap d'Agde, France, 1983.Google Scholar
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [GUTTAG et al. 78]
- [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
- [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
- [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
- [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
- [MANNA 74]Manna, Z., Mathematical theory of computation, Mc Graw Hill, 1974.Google Scholar
- [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
- [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
- [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
- [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
- [ZILLES 79]Zilles, S.N., An introduction to data algebras, L.N.C.S. No 86, Springer Verlag, 1979.Google Scholar