The Alma Project, or How First-Order Logic Can Help us in Imperative Programming
The aim of the Alma project is the design of a strongly typed constraint programming language that combines the advantages of logic and imperative programming.
The first stage of the project was the design and implementation of Alma- 0, a small programming language that provides a support for declarative programming within the imperative programming framework. It is ob- tained by extending a subset of Modula-2 by a small number of features inspired by the logic programming paradigm
In this paper we discuss the rationale for the design of Alma-0, the ben- effts of the resulting hybrid programming framework, and the current work on adding constraint processing capabilities to the language. In particular, we discuss the role of the logical and customary variables, the interaction between the constraint store and the program, and the need for lists.
KeywordsLogic Programming Constraint Programming Choice Point Constraint Solver Constraint Logic Programming
Unable to display preview. Download preview PDF.
- 1.K. R. Apt and M. A. Bezem. Formulas as programs. In K.R. Apt, V.W. Marek, M. Truszczyński, and D.S. Warren, editors, The Logic Programming Paradigm: A 25 Year Perspective, pages 75–107, 1999.Google Scholar
- 3.K. R. Apt and A. Schaerf. Search and imperative programming. In Proc. 24th Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ‘97), pages 67–79. ACM Press, 1997.Google Scholar
- 5.M. R. Garey and D. S. Johnson. Computers and Intractability-A guide to NP-completeness. W.H. Freeman and Company, San Francisco, 1979.Google Scholar
- 6.R. E. Griswold and M. T. Griswold. The Icon Programming Language. Prentice-Hall, Englewood Cliffs, New Jersey, USA, 1983.Google Scholar
- 7.W. K. Hale. Frequency assignment: Theory and applications. In Proc. of IEEE, pages 1497–1514, 1980.Google Scholar
- 8.P. Van Hentenryck, Vijay Saraswat, and Y. Deville. Design, implementation, and evaluation of the constraint language cc(FD). In Andreas Podelski, editor, Constraint Programming: Basics and Trends, LNCS 10. Springer-Verlag, 1995. (Châtillon-sur-Seine Spring School, France, May 1994).Google Scholar
- 9.ILOG. ILOG optimization suite-white paper. Available via http://www.ilog.com, 1998.
- 13.K. McAloon and C. Tretkoff. 2LP: Linear programming and logic programming. In P. Van Hentenryck and V. Saraswat, editors, Principles and Practice of Constraint Programming, pages 101–116. MIT Press, 1995.Google Scholar
- 14.A. Oplobedu, J. Marcovitch, and Y. Tourbier. CHARME: Un langage industriel de programmation par contraintes, illustré par une application chez Renault. In Ninth International Workshop on Expert Systems and their Applications: General Conference, Volume 1, pages 55–70, Avignon, France, 1989. EC2.Google Scholar
- 15.F. Pfenning, editor. Types in Logic Programming. MIT Press, Cambridge, Massachusetts, 1992.Google Scholar
- 16.J.-F. Puget and M. Leconte. Beyond the glass box: Constraints as objects. In Proc. of the 1995 International Symposium on Logic Programming, pages 513–527, 1995.Google Scholar
- 17.J.-C. Regin. A filtering algorithm for constraints of difference in CSPs. In AAAI-94: Proceedings of the 12th National Conference on Artificial Intelligence, pages 362–367, 1994.Google Scholar
- 18.I. Shvetsov, V. Telerman, and D. Ushakov. NeMo+: Object-oriented constraint programming environment based on subdefinite models. In G. Smolka, editor, Artificial Intelligence and Symbolic Mathematical Computations, Lecture Notes in Computer Science, vol. 1330, pages 534–548, Berlin, 1997. Springer-Verlag.Google Scholar