2011/02/06 by Paul Tarau, Tarau, Paul
Computer Science · #FOS: Computer and information sciences #Formal Methods in Verification #Logic, programming, and type systems #Programming Languages (cs.PL) #Software Testing and Debugging Techniques #cs.PL #semigroups and automata theory
paper · pdf · doi:10.48550/arxiv.1102.1178
To appear in Theory and Practice of Logic Programming (TPLP); Keywords: Prolog, logic programming system, continuation passing style compilation, implementation of Prolog, first-class logic engines, data-representations for Prolog run-time systems
arxiv created 2011/02/06 · openalex publication_date 2011/02/06 · arxiv updated 2011/02/08 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28
We describe the BinProlog system's compilation technology, runtime system and its extensions supporting first-class Logic Engines while providing a short history of its development, details of some of its newer re-implementations as well as an overview of the most important architectural choices involved in their design. With focus on its differences with conventional WAM implementations, we explain key details of BinProlog's compilation technique, which replaces the WAM with a simplified continuation passing runtime system (the "BinWAM"), based on a mapping of full Prolog to binary logic programs. This is followed by a description of a term compression technique using a "tag-on-data" representation. Later derivatives, the Java-based Jinni Prolog compiler and the recently developed Lean Prolog system refine the BinProlog architecture with first-class Logic Engines, made generic through the use of an Interactor interface. An overview of their applications with focus on the ability to express at source level a wide variety of Prolog built-ins and extensions, covers these newer developments.