Neumerkel, U. W. (1992). Specialization of prolog programs with partially static goals and binarization [Dissertation, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-11974
This thesis presents two new methods that specialize ordinary and binary Prolog programs and compares them with current approaches. The first method is based on the new notion of partially static goals. Partially static goals generalize binding environments. More information can be propagated for specialization. The method is well suited for application in fold/unfold transformation systems. The second method, EBC- transformation (equality-based continuation transformation) is able to remove unnecessary, existential variables and structural redundancies caused by difference lists, context arguments, short-circuits or accumulator passing that cannot be removed by the methods known from the literature. In particular, for programs representing Definite Clause Grammars EBC-transformations are able to remove all unnecessary variables related to the difference list to be parsed or generated. EBC- transformation does not only make programs amenable to subsequent program transformations by removing unnecessary variables, but also improves execution speed and reduces dynamic memory consumption. The method is of particular interest for binary Prolog implementations. Experimental investigations support this view. Some applications of our methods are given. We were able to derive the unique unification mechanism of the Vienna Abstract Machine by applying partially static goals and EBC- transformations. Extensions to usual programming techniques are presented that benefit from EBC-transformations.