Encapsulation constructs in prolog
Encapsulation is a well-established concept that has been used extensively in programming languages as a tool for disciplined and reliable program organization. In this paper we try to elucidate the critical issues involved, when introducing encapsulation constructs in the programming language PROLOG. It is argued that two different forms of encapsulation are needed in order to incorporate modules and abstract data types into the language. We present a general representation framework which can be used as the basis for the implementaion of various modular systems. We also describe a construct ADT which is used for the encapsulation of user defined abstract data types, and an interpreter that handles the execution of PROLOG goals in the context of modules and abstract data types.