On the implementation of gnu prolog

  • Authors:
  • Daniel Diaz;Salvador Abreu;Philippe Codognet

  • Affiliations:
  • University of paris 1, 90 rue de tolbiac, 75013 paris, france (e-mail: daniel.diaz@univ-paris1.fr);Universidade de Évora and centria fct/unl, largo dos colegiais 2, 7004-516 Évora, portugal (e-mail: spa@di.uevora.pt);Jfli, cnrs, university of tokyo, tokyo, japan (e-mail: philippe.codognet@lip6.fr)

  • Venue:
  • Theory and Practice of Logic Programming - Prolog Systems
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

GNU Prolog is a general-purpose implementation of the Prolog language, which distinguishes itself from most other systems by being, above all else, a native-code compiler which produces stand-alone executables which do not rely on any bytecode emulator or meta-interpreter. Other aspects which stand out include the explicit organization of the Prolog system as a multipass compiler, where intermediate representations are materialized, in Unix compiler tradition. GNU Prolog also includes an extensible and high-performance finite-domain constraint solver, integrated with the Prolog language but implemented using independent lower-level mechanisms. This paper discusses the main issues involved in designing and implementing GNU Prolog: requirements, system organization, performance, and portability issues as well as its position with respect to other Prolog system implementations and the ISO standardization initiative.