A Gradual Polymorphic Type System with Subtyping for Prolog

Author Spyros Hadjichristodoulou

Thumbnail PDF


  • Filesize: 318 kB
  • 7 pages

Document Identifiers

Author Details

Spyros Hadjichristodoulou

Cite AsGet BibTex

Spyros Hadjichristodoulou. A Gradual Polymorphic Type System with Subtyping for Prolog. In Technical Communications of the 28th International Conference on Logic Programming (ICLP'12). Leibniz International Proceedings in Informatics (LIPIcs), Volume 17, pp. 451-457, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2012)


Although Prolog was designed and developed as an untyped language, there have been numerous attempts at proposing type systems suitable for it. The goal of research in this area has been to make Prolog programming easier and less error-prone not only for novice users, but for the experienced programmer as well. Despite the fact that many of the proposed systems have deep theoretical foundations that add types to Prolog, most Prolog vendors are still unwilling to include any of them in their compiler's releases. Hence standard Prolog remains an untyped language. Our work can be understood as a step towards typed Prolog. We propose an extension to one of the most extensively studied type systems proposed for Prolog, the Mycroft-O'Keefe type system, and present an implementation in XSB-Prolog. The resulting type system can be characterized as a Gradual type system, where the user begins with a completely untyped version of his program, and incrementally obtains information about the possible types of the predicates he defines from the system itself, until type signatures are found for all the predicates in the source code.
  • Type Inference
  • Polymorphic Type System
  • Gradual Typing
  • Tabling
  • Answer Subsumption


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads