Skip to main content

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

  • Chapter
  • First Online:
Correct System Design

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1710))

Abstract

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.

Acknowledgements

We would like to thank Jan Holleman, Eric Monfroy and Vincent Partington for useful discussions on the subject of this paper. Helpful comments by Tony Hoare and other two, anonymous, referees allowed us to improve the presentation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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.

    Article  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 

  4. A. Colmerauer. An introduction to Prolog III. Communications of ACM, 33(7):69–90, 1990.

    Article  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.

  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.

    Chapter  Google Scholar 

  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.

    Article  Google Scholar 

  12. P. Klint. A meta-environment for generating programming environments. ACM Transactions on Software Engineering and Methodology, 2(2):176–201, 1993.

    Article  Google Scholar 

  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 

  19. P. Van Hentenryck, Helmut Simonis, and Mehmet Dincbas. Constraint satisfaction using constraint logic programming. Artificial Intelligence, 58:113–159, 1992

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Apt, K.R., Schaerf, A. (1999). The Alma Project, or How First-Order Logic Can Help us in Imperative Programming. In: Olderog, ER., Steffen, B. (eds) Correct System Design. Lecture Notes in Computer Science, vol 1710. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48092-7_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-48092-7_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66624-0

  • Online ISBN: 978-3-540-48092-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics