Abstract
Having understood that most attractive programming paradigms introduced recently in declarative symbolic programming languages need not be provided at the detriment of one another, we also believe that they can and should coexist with the more conventional state-effecting style of explicit control and data processing of imperative programming. To this end, we language designers must provide three primeval abstractions which could allow retrieving of most particular programming styles as particular instances, with the additional freedom of manipulating these abstractions explicitly. In the next decade, computer programming should allow specifying (1) abstract data structures, (2) abstract control structures, and (3) abstract constraint structures.
With these basic ideas in mind, we shall propose and sketch a specific design for a language and lay out some explicit requirements. Doing so, we shall try to compare this attempt to the state of the art.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Hassan Aït-Kaci. An overview of LIFE. Research paper, Digital Equipment Corporation, Paris Research Laboratory, Rueil-Malmaison, France, 1990.
Hassan Aït-Kaci. Warren's Abstract Machine, A Tutorial Reconstruction. Series on Logic Programming. MIT Press, Cambridge, MA, USA, 1991.
Hassan Aït-Kaci and Richard Meyer. Wild_LIFE, a user manual. PRL Technical Note 1, Digital Equipment Corporation, Paris Research Laboratory, Rueil-Malmaison, France, 1990.
Hassan Aït-Kaci and Roger Nasr. LOGIN: A logic programming language with built-in inheritance. Journal of Logic Programming, 3:185–215, 1986.
Hassan Aït-Kaci and Roger Nasr. Integrating logic and functional programming. Lisp and Symbolic Computation, 2:51–89, 1989.
Hassan Aït-Kaci and Andreas Podelski. Is there a meaning to LIFE? Research paper, Digital Equipment Corporation, Paris Research Laboratory, Rueil-Malmaison, France, 1990.
Hassan Aït-Kaci and Andreas Podelski. Functions as passive constraints in LIFE. Research paper, Digital Equipment Corporation, Paris Research Laboratory, Rueil-Malmaison, France, 1991.
Alan Borning, Robert Duisberg, Bjorn Freeman-Benson, Axel Kramer, and Michael Woolf. Constraint hierarchies. In Proceedings of the Conference on Object-Oriented Systems Languages and Applications, pages 48–60, 1987.
Alan Borning. The programming language aspects of Thinglab. ACM Transactions on Programming Languages and Systems, 3(4):353–387, October 1981.
Peter Canning, William Cook, Walter Hill, and Walter Olthoff. Interfaces for strongly-typed object-oriented programming. In Proceedings of the Conference on Object-Oriented Systems Languages and Applications, October 1989.
Luca Cardelli, James Donahue, Lucille Glassman, Mike Jordan, Bill Kalsow, and Greg Nelson. Modula-3 report (revised). Research Report 52, Digital Equipment Corporation, Systems Research Center, Palo Alto, CA, USA, November 1989.
William F. Clocksin and Christopher S. Mellish. Programming in Prolog. Springer Verlag, Berlin, Germany, 2nd edition, 1984.
Alain Colmerauer. PROLOG II reference manual and theoretical model. Internal report, Groupe d'Intelligence Artificielle, Université d'Aix-Marseille II, October 1982.
Alain Colmerauer. An introduction to PROLOG III. Communications of the ACM, pages 70–90, July 1990.
William Cook. A proposal for making Eiffel type-safe. The Computer Journal, 32(4):305–311, 1989.
Mehmet Dincbas, Helmut Simonis, and Pascal van Hentenryck. Extending equation-solving and constraint-handling in logic programming. In Hassan Aït-Kaci and Maurice Nivat, editors, Resolution of Equations in Algebraic Structures, Vol. 2: Rewriting Techniques, chapter 3, pages 87–115. Academic Press, Boston, MA, USA, 1989.
Bjorn Freeman-Benson. Kaleidoscope: Mixing objects, constraints, and imperative programming. In Joint Proceedings of the European Conference on Object-Oriented Programming, and the Conference on Object-Oriented Systems Languages and Applications, pages 77–88, ACM, 1990.
Matthias Felleisen. The Calculi of λ-v-CS-Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages. PhD thesis, Indiana University, 1987.
Matthias Felleisen and Daniel Friedman. A syntactic theory of sequential state. Theoretical Computer Science, 69:243–287, 1989.
Matthias Felleisen, Mitchell Wand, Daniel Friedman, and Bruce Duba. Abstract continuations: a mathematical semantics for handling full functional jumps. In Proceeding of the Conference on Lisp and Functional Programming, pages 52–62, 1988.
Adele Goldberg and David Robson. Smalltalk 80: The Language and its Implementation. Addison-Wesley, 1980.
Robert Harper, Robin Milner, and Mads Tofte. The definition of standard ML — Version 2. Report LFCS-88-62, University of Edinburgh, Edinburgh, UK, 1988.
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.
Joxan Jaffar and Jean-Louis Lassez. Constraint logic programming. In Proceedings of the 14th ACM Symposium on Principles of Programming Languages, Munich, Germany, January 1987.
Joxan Jaffar and Spiro Michaylov. Methodology and implementation of a CLP system. In Jean-Louis Lassez, editor, Proceedings of the Fourth International Conference on Logic Programming, pages 196–218. MIT Press, 1987.
Joxan Jaffar, Spiro Michaylov, Peter Stuckey, and Roland Yap. The CLP(ℜ) language and system. Report draft, IBM Thomas J. Watson Research Center, Yorktown Heights, NY, April 1988.
John McCarthy et al. Lisp 1.5 Programmer's Manual. MIT Press, second edition edition, 1965.
Richard O'Keefe. The Craft of Prology. Series on Logic Programming. MIT Press, Cambridge, MA, USA, 1990.
John Rees and William Clinger. The revised3 report on the algorithmic language Scheme. SIGPLAN Notices, 21(12):37–79, 1986.
Paul Rovner. Extending Modula-2 to build large, integrated systems. IEEE Software, 3(6), November 1986.
Leon Sterling and Ehud Shapiro. The Art of Prolog. Series on Logic Programming. MIT Press, Cambridge, MA, USA, 1986.
Guy Steele. Common LISP, The Language. Digital Press, 1984.
Pascal van Hentenryck. Constraint Satisfaction in Logic Programming. Series on Logic Programming. MIT Press, Cambridge, MA, USA, 1989.
Niklaus Wirth. Programming in Modula-2. Springer-Verlag, third edition edition, 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aït-Kaci, H. (1991). A glimpse of paradise. In: Schmidt, J.W., Stogny, A.A. (eds) Next Generation Information System Technology. EWDW 1990. Lecture Notes in Computer Science, vol 504. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54141-1_2
Download citation
DOI: https://doi.org/10.1007/3-540-54141-1_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54141-7
Online ISBN: 978-3-540-47444-9
eBook Packages: Springer Book Archive