Skip to Main Content
Logic programming can benefit from a typing concept which supports many software engineering principles such as data abstraction, modularization, etc. From a computational point of view, the use of types can drastically reduce the search space. Starting from these observations, this paper gives a survey of many-sorted, order-sorted, and polymorphic approaches to type concepts in logic programming. The underlying unification procedures for ordinary term unification, order-sorted unification, and in particular for polymorphic order-sorted unification are given in the style of solving a set of equations, giving a common basis for comparing them. In addition, the realization of these unification procedures on a Warren Abstract Machine-like architecture is described. Special emphasis is placed on the abstract machine developed for PROTOS-L, a logic programming language based on polymorphic order-sorted unification.
Note: The Institute of Electrical and Electronics Engineers, Incorporated is distributing this Article with permission of the International Business Machines Corporation (IBM) who is the exclusive owner. The recipient of this Article may not assign, sublicense, lease, rent or otherwise transfer, reproduce, prepare derivative works, publicly display or perform, or distribute the Article.