A versatile module system for Prolog mapped to flat prolog

This paper presents a module system for Frolog with large functionality, flexibility and various desirable properties. No restriction to the use of ordinary Prolog is imposed. On the contrary, the set of the relevant extra logical@icakts is extended so that to take the module concept into account. No space outside the modules exists and modules may be loaded and deleted at any time. The system is intended to be used either in cases where complicated interconnections are required or as a basis to build any module system structure on top of it, The complete functionality of the modute system is implemented as a preprocessor that maps modular programs to flat Prolog code. In addition, the implementation comprises the definition of a few run time support predicates. The considered mapping ean also seine as a specification of the module system and expsses the semanties of the introduced module support constructs, The implementation itself was tied out in Prolog.