Towards a meaning of LIFE
LIFE (Logic, Inheritance, Functions, Equations) is an experimental programming language proposing to integrate three orthogonal programming paradigms proven useful for symbolic computation. From the programmer's standpoint, it may be perceived as a language taking after logic programming, functional programming, and object-oriented programming. ?From a formal perspective, it may be seen as an instance (or rather, a composition of three instances) of a Constraint Logic Programming scheme due to Hvhfeld and Smolka refining that of Jaffar and Lassez.
We start with an informal overview demonstrating LIFE as a programming language, illustrating how its primitives offer rather unusual, and perhaps (pleasantly) startling, conveniences. The second part is a formal account of LIFE's object unification seen as constraint-solving over specific domains. We build on work by Smolka and Rounds to develop type-theoretic, logical, and algebraic renditions of a calculus of order-sorted feature approximations.
KeywordsLogic Program Logic Programming Operational Semantic Functional Programming Digital Equipment Corporation
Unable to display preview. Download preview PDF.
- [AK84]Hassan Aït-Kaci. A Lattice-Theoretic Approach to Computation Based on a Calculus of Partially-Ordered Types. PhD thesis, University of Pennsylvania, Philadelphia, PA, 1984.Google Scholar
- [AK86]Hassan Aït-Kaci. An algebraic semantics approach to the effective resolution of type equations. Theoretical Computer Science, 45:293–351, 1986.Google Scholar
- [AKN86]Hassan Aït-Kaci and Roger Nasr. LOGIN: A logic programming language with built-in inheritance. Journal of Logic Programming, 3:185–215, 1986.Google Scholar
- [AKN89]Hassan Aït-Kaci and Roger Nasr. Integrating logic and functional programming. Lisp and Symbolic Computation, 2:51–89, 1989.Google Scholar
- [AKNL87]Hassan Aït-Kaci, Roger Nasr, and Patrick Lincoln. Le Fun: Logic, equations, and Functions. In Proceedings of the Symposium on Logic Programming (San Francisco, CA), pages 17–23, Washington, DC, 1987. IEEE, Computer Society Press.Google Scholar
- [AKP91a]Hassan Aït-Kaci and Andreas Podelski. Towards the meaning of LIFE. PRL Research Report 11, Digital Equipment Corporation, Paris Research Laboratory, Rueil-Malmaison, France, 1991.Google Scholar
- [AKP91b]Hassan Aït-Kaci and Andreas Podelski. Functions as passive constraints in LIFE. PRL Research Report 13, Digital Equipment Corporation, Paris Research Laboratory, Rueil-Malmaison, France, 1991.Google Scholar
- [CM84]William F. Clocksin and Christopher S. Mellish. Programming in Prolog. Springer-Verlag, Berlin, Germany, 2nd edition, 1984.Google Scholar
- [DR90]Jochen Dörre and William C. Rounds. On subsumption and semiunification in feature algebras. In Proceedings of the 5th Annual IEEE Symposium on Logic in Computer Science (Philadelphia, PA), pages 301–310, Washington, DC, 1990. IEEE, Computer Society Press.Google Scholar
- [HS88]Markus Höhfeld and Gert Smolka. Definite relations over constraint languages. LILOG Report 53, IWBS, IBM Deutschland, Stuttgart, Germany, October 1988, To appear in the Journal of Logic Programming.Google Scholar
- [JL87]Joxan Jaffar and Jean-Louis Lassez. Constraint logic programming. In Proceedings of the 14th ACM Symposium on Principles of Programming Languages, Munich, W. Germany, January 1987.Google Scholar
- [O'K90]Richard O'Keefe. The Craft of Prolog. MIT Press, Cambridge, MA, 1990.Google Scholar
- [Smo88]Gert Smolka. A feature logic with subsorts. LILOG Report 33, IWBS, IBM Deutschland, Stuttgart, Germany, May 1988.Google Scholar
- [Smo89]Gert Smolka. Feature constraint logics for unification grammars. IWBS Report 93, IWBS, IBM Deutschland, Stuttgart, Germany, November 1989. To appear in Journal of Logic Programming.Google Scholar