Next: Background Up: Introduction Previous: Approach and Results


Chapter 2 presents the background for this work: a short introduction is given for relational-functional programming languages and abstract machines.

Chapter 3 introduces LL: its data types, special forms and builtin functions, and the user-definable functions. Since LL is mainly a subset of COMMON LISP, the reader familiar with COMMON LISP may skip most of the details in this chapter.

Chapter 4 describes the integration of relational languages and LL: their integration on the abstract machine and source language level, the transformation of deterministic predicates into LL functions, and the implementation of extra-logicals with the help of LL. Since the transformation of deterministic predicates requires their detection, a theoretical foundation for deterministic relations (using SLD resolution trees) is developed.

Chapter 5 gives a description of the LLAMA: its registers and memory organization, the representation of data structures, the calling conventions, and the instructions. The LLAMA is presented in a rather technical manner using machine state transition diagrams, thus allowing the LLAMA to be easily re-implemented in any (imperative or functional) programming language.

Chapter 6 describes the compiler for LL into the LLAMA. Again, a technical representation using transformation rules was employed in order to allow the compiler, just like the LLAMA, to be easily re-implemented.

Chapter 7 gives a short overview of the GAMA which was used to integrate the WAM with the LLAMA.

Chapter 8 finishes this work with conclusions and gives some hints for future work.

Next: Background Up: Introduction Previous: Approach and Results

Harold Boley & Michael Sintek (