Although the concepts of typing, modularisation and data abstraction have already proved their usefulness in modern programming languages, logic programming does not seem to have paid enough attention to them. A simple and efficient way that these ideas can be realised in a logic programming framework, which also remains within the spirit of logic programming, is proposed here. A polymorphic type system with subtypes forms the basis for modular structure, which also supports object-oriented programming. The ideas are presented as an extension to Prolog, which is taken as a practical representative of logic programming. Additionally, they have been implemented in a skeleton language on top of standard Prolog.
This paper is not available online