The current state of the art for ensuring finite unfolding of logic programs consists of a number of online techniques where unfoldint decisions are made at specialisation time. Introduction of a static termination analysis phase into a partial deduction algorithm permits unfolding decisions to be made offine, before, the actual specialisation phase itself. This separation improves specialisation time and facilitates the automatic construction of compliers and compiler generators. The main contribution of this paper is how this separation may be achieved in the context of logic programming, while providing non-trivial support for partially statric datastructures.
展开▼