Turtle: A Constraint Imperative Programming Language

  • Martin Grabmüller
  • Petra Hofstedt


Ideally, in constraint programs, the solutions of problems are obtained by specifying their desired properties, whereas in imperative programs, the steps which lead to a solution must be defined explicitly, rather than being derived automatically. This paper describes the design and implementation of the programming language TURTLE, which integrates declarative constraints and imperative language elements in order to combine their advantages and to form a more flexible programming paradigm suitable for solving a wide range of problems.


Constraint Statement Constraint Program Variable Object Constraint Solver Exception Handler 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    S. Abdennadher, E. Krämer, M. Saft, and M. Schmauss. JACK: A Java constraint kit. In WFLP 2001. University of Kiel; Technical Report No. 2017, September 13-15 2001.Google Scholar
  2. [2]
    K. R. Apt, J. Brunekreef, V. Partington, and A. Schaerf. Alma-O: An imperative language that supports declarative programming. ACM Toplas, 20(5):1014–1066, 1998.CrossRefGoogle Scholar
  3. [3]
    K. R. Apt and A. Schaerf. The Alma project, or how first order logic can help us in imperative programming. In Correct System Design, number 1710 in LNCS, pages 89–113. Springer, 1999.Google Scholar
  4. [4]
    A. Borning, R. Anderson, and B. Freeman-Benson. The Indigo algorithm. Technical Report 96-05-01, Dept. of Computer Science and Engineering, University of Washington, July 1996.Google Scholar
  5. [5]
    A. Borning, B. Freeman-Benson, and M. Wilson. Constraint hierarchies. Lisp and Symbolic Computation, 5:223–270, 1992.CrossRefGoogle Scholar
  6. [6]
    B. N. Freeman-Benson. Constraint Imperative Programming. PhD thesis, University of Washington, Dept. of Computer Science and Engineering, July 1991.Google Scholar
  7. [7]
    B. N. Freeman-Benson and A. Borning. The design and implementation of Kaleidoscope’90, a constraint imperative programming language. In Proc. of the IEEE Computer Society 1992 Int’l Conference on Computer Languages, pages 174–180, April 1992.Google Scholar
  8. [8]
    M. Grabmüller. Constraint Imperative Programming. Diploma Thesis, Technische Universitat Berlin, February 2003.Google Scholar
  9. [9]
    R. Kelsey, W. Clinger, J. Rees, et al. Revised5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 33(6):26–76, September 1998.Google Scholar
  10. [10]
    G. Lopez, B. Freeman-Benson, and A. Borning. Kaleidoscope: A constraint imperative programming language. In B. Mayoh, E. Tyugu, and J. Penjaam, editors, Constraint Programming: Proc. 1993 NATO ASI Parnu, Estonia, pages 305–321. Springer, 1994.Google Scholar
  11. [11]
    P. Pepper. Funktionale Programmierung in OPAL, ML, HASKELL und GOFER. Springer, 2nd edition, 2003.Google Scholar
  12. [12]
    J.-F. Puget. A C++ Implementation of CLP. In Proceedings of the Second Singapore International Conference on Intelligent Systems, Singapore, 1994.Google Scholar

Copyright information

© Springer-Verlag London 2004

Authors and Affiliations

  • Martin Grabmüller
    • 1
  • Petra Hofstedt
    • 1
  1. 1.Fakultät IV Elektrotechnik und InformatikTechnische Universität BerlinBerlinGermany

Personalised recommendations