A preprocessor based module system for Prolog

  • Roland Dietrich
Part of the Lecture Notes in Computer Science book series (LNCS, volume 352)


In this paper, we propose a simple module system for Prolog. A minimal set of simple concepts realize the most important objectives of a module system: structuring of a larger piece of software into smaller logical units, information hiding, and abstract data types. It can be completely implemented by a preprocessor which maps modularized Prolog programs onto ordinary Prolog programs. The preprocessor itself can be written in Prolog and thus the module system can be integrated in any existing Prolog environment. It can easily be integrated with other preprocessor based software engineering aids, for example static mode and type checkers.


Module System Module Context Prolog Program Abstract Data Type Prolog System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. The Programming Language Ada, Reference Manual, American National Standards Institute, Inc., ANSI/MIL-STD-1815A-1983, Springer LNCS 155, 1983.Google Scholar
  2. Y. C. Chan, B. Poterie, Modules in Prolog, British Standards Institution-IST/5/15 Prolog, Document PS/185, February 1987.Google Scholar
  3. W. F. Clocksin, C. S. Mellish, Programming in Prolog, Springer Verlag Heidelberg, 1981.Google Scholar
  4. R. Dietrich, Modes and Types for Prolog, Arbeitspapiere der GMD Nr. 185, February 1988.Google Scholar
  5. R. Dietrich, F. Hagl, A Polymorphic Type System with Subtypes for Prolog, Proc. 2nd European Symposium on Programming (ESOP '88), Nancy, March 1988, Springer LNCS 300, 79–93.Google Scholar
  6. S. Drosopoulou, Module and Type Systems-a Tour, Imperial College, London, Report IC/FPR/PROG/2.2/12, issue 2, March 1988.Google Scholar
  7. J. A. Goguen, J. Meseguer, Equality, Types, Modules, and Generics for Logic Programming, Proc. 2nd International Conference on Logic Programming, Uppsala, Sweden, 1984, 115–126.Google Scholar
  8. G. Goos, R. Dietrich, P. Kursawe, Prolog Arbeiten in Karlsruhe, in: W. Brauer, W. Wahlster (Eds.), Wissensbasierte Systeme, Springer Informatik Fachberichte 155, September 1987, pp 89–104.Google Scholar
  9. N. Lindenberg, A. Bockmayr, R. Dietrich, P. Kursawe, B. Neidecker, C. Scharnhorst, I. Varsek, KA-Prolog: Sprachdefinition, Universität Karlsruhe, Interner Bericht 5/87 und Arbeitspapiere der GMD Nr. 249., May 1987.Google Scholar
  10. D. MacQueen, Modules for Standard ML, ACM Symposium on LISP and Functional Programming, Austin, Texas, 1984.Google Scholar
  11. A. Mycroft, R. A. O'Keefe, A Polymorphic Type System for Prolog, Artificial Intelligence 23, 1984, 295–307.MathSciNetGoogle Scholar
  12. F. Pereira (Ed.), C-Prolog User's Manual, Version 1.5, EdCAAD, University of Edinburgh, February 1984.Google Scholar
  13. R. S. Scowen (Ed.), Modules in Prolog-A Discussion Paper, ISO/IEC JTC1 SC22 WG12, Document N14, July 1988.Google Scholar
  14. P. Szeredi, Module Concepts for Prolog, Proc. Workshop on Prolog Programming Environments, Linköping, 1982, pp. 69–80.Google Scholar
  15. A. Ultsch, M. P. J. Fromherz, H.-P. Schmid, Modules in Prolog. In: R. Scowen (Ed.), PROLOG-Oxford 1988 papers, ISO/IEC JTC1 SC22 WG17, Document N12, April 1988.Google Scholar
  16. D. H. D. Warren, An Abstract Prolog Instruction Set, Technical Note 309, Artificial Intelligence Center, SRI International, 1983.Google Scholar
  17. N. Wirth, Programming in Modula-2, Springer Verlag, 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Roland Dietrich
    • 1
  1. 1.GMD Forschungsstelle an der Universität Karlsruhe (German National Research Center for Computer Science)Karlsruhe

Personalised recommendations