The Alma Project, or How First-Order Logic Can Help us in Imperative Programming

  • Krzysztof R. Apt
  • Andrea Schaerf
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1710)


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.


Logic Programming Constraint Programming Choice Point Constraint Solver Constraint Logic Programming 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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
  2. 2.
    K. R. Apt, J. Brunekreef, V. Partington, and A. Schaerf. Alma-0: An imperative language that supports declarative programming. ACM Toplas, 20(5):1014–1066, 1998.CrossRefGoogle Scholar
  3. 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
  4. 4.
    A. Colmerauer. An introduction to Prolog III. Communications of ACM, 33(7):69–90, 1990.CrossRefGoogle Scholar
  5. 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. 6.
    R. E. Griswold and M. T. Griswold. The Icon Programming Language. Prentice-Hall, Englewood Cliffs, New Jersey, USA, 1983.Google Scholar
  7. 7.
    W. K. Hale. Frequency assignment: Theory and applications. In Proc. of IEEE, pages 1497–1514, 1980.Google Scholar
  8. 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. 9.
    ILOG. ILOG optimization suite-white paper. Available via, 1998.
  10. 10.
    J. Jaffar and J.-L. Lassez. Constraint Logic Programming. In 14th ACM Principles of Programming Languages Conference, pages 111–119, Munich, F.R.G., 1987. ACM, New York.CrossRefGoogle Scholar
  11. 11.
    .Joxan Jaffar, Spiro Michaylov, Peter J. Stuckey, and Roland H. C. Yap. The CLP(R) language and system. ACM Transactions on Programming Languages and Systems (TOPLAS), 14(3):339–395, July 1992.CrossRefGoogle Scholar
  12. 12.
    P. Klint. A meta-environment for generating programming environments. ACM Transactions on Software Engineering and Methodology, 2(2):176–201, 1993.CrossRefGoogle Scholar
  13. 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. 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. 15.
    F. Pfenning, editor. Types in Logic Programming. MIT Press, Cambridge, Massachusetts, 1992.Google Scholar
  16. 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. 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. 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
  19. 19.
    P. Van Hentenryck, Helmut Simonis, and Mehmet Dincbas. Constraint satisfaction using constraint logic programming. Artificial Intelligence, 58:113–159, 1992zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Krzysztof R. Apt
    • 1
    • 2
  • Andrea Schaerf
    • 3
  1. 1.CWIThe Netherlands
  2. 2.Dept. of MathematicsComputer Science, Physics & Astronomy University of AmsterdamThe Netherlands
  3. 3.Dipartimento di Ingegneria ElettricaGestionale e Meccanica Università di UdineItaly

Personalised recommendations