TCLP

What is TCLP ?

  1. A prescriptive type system for Constraint Logic Programming, currently:
    • ISO-Prolog
    • GNU-Prolog
    • Sicstus Prolog 3.8 and its libraries
    • Contraints programming libraries of Sicstus Prolog 3.8
  2. Based on Typing Constraint Logic Programs by François Fages and Emmanuel Coquery. Journal of Theory and Practice of Logic Programming TPLP 1(6)., pp. 751-777. November 2001. Available as ps.
    TCLP uses 3 kind of polymorphism:
    • parametric polymorphism (e.g. : list(A))
    • subtyping (e.g. : list(A) < term)
    • overloading (also called adhoc polymorphism)
      e.g.: '-'/2 can have type int * int → int and type A * B → pair(A,B)
  3. Usable:
    • No type declaration required !
      • type inference for predicates
      • default types for function symbols
    • Extensible to other dialects by providing types for built-ins

TCLP is implemented in Prolog/CHR.

Download

Documentation

Note: the online demo does not work anymore.

What's new ?

2006-07-20

TCLP 0.4.4 introduces type aliases.

2005-05-25

TCLP 0.4.3 & fixed the online demo.

2004-11-16

2004-02-27

2004-01-27

TCLP 0.4 is here !

2004-01-23

Pre 0.4 release: 0.3f

2003-09-25

Fixed binary for MacOSX without sicstus installed available here.

2003-06-02

Bugfix realease: 0.3b

2002-10-31

  • New version of the <a href=“doc.html” shape=“rect”>documentation]]
  • New version of TCLP: 0.3
  • ppc / Darwin (MacOS X) port

2002-09-04

TCLP version 0.2.99g here

2002-06-26

TCLP version 0.2.99e here

2002-06-18

TCLP version 0.2.99d here

2002-04-24

TCLP version 0.2.99, entirely rewritten in Prolog/CHR, with handling of overloading.

Download here, have a look at the documentation.

2001-12-06

Bugfix version 0.2.1

2001-11-05

New version 0.2

Updated the web site, including a new documentation section.

Included an install script Changed the options in the web interface (see the demo)

April 2001

Initial version of TCLP (version 0.1)