Open Prolog: a Structure-Sharing Prolog for the Macintosh
Michael Brady · Trinity's Access to Research Output (TARA) (Trinity College Dublin) · 2005
This thesis explores the design and implementation of a Prolog system with just one mode of program execution rather than the two modes of execution? interpretation and compilation?present in most Prolog implementations in use today. The main contribution of the thesis is such a design, combining reasonably high runtime performance with the ability to modify, debug and inspect program code. The design has been realised as Open Prolog, a complete Prolog environment with an integrated editor and debugger, built for the Apple Macintosh with a Motorola 68000 instruction set. The implementation supports the argument that the design offers high speed compilation combined with reasonably high speed implementation and simplicity of implementation, and compares favourably, in terms of speed of execution and ease of program development, with a number of other implementations. This work is concerned with the design and implementation of Open Prolog: the overall architecture, static and dynamic aspects of the system, including code representation, the image machine, compilation, data areas, the runtime behaviour of the system, built-in predicates and garbage collection. The performance of the implementation is benchmarked and compared with a number of other implementations, and the results of a low-level profiling study are presented.