POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A logical analysis of modules in logic programming
Journal of Logic Programming
A calculus for the construction of modular Prolog programs
Journal of Logic Programming
Linear concurrent constraint programming: operational and phase semantics
Information and Computation
Meta for Modularising Logic Programming
META-92 Proceedings of the 3rd International Workshop on Meta-Programming in Logic
A New Module System for Prolog
CL '00 Proceedings of the First International Conference on Computational Logic
A Proposal for Modules in Lambda-Prolog
ELP '93 Proceedings of the 4th International Workshop on Extensions of Logic Programming
Hiord: a type-free higher-order logic programming language with predicate abstraction
ASIAN'04 Proceedings of the 9th Asian Computing Science conference on Advances in Computer Science: dedicated to Jean-Louis Lassez on the Occasion of His 5th Cycle Birthday
Secure Implementation of Meta-predicates
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Closures and modules within linear logic concurrent constraint programming
FSTTCS'07 Proceedings of the 27th international conference on Foundations of software technology and theoretical computer science
A modular semantics for higher-order declarative programming with constraints
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
Module systems are an essential feature of programming languages as they facilitate the re-use of existing code and the development of general purpose libraries. Unfortunately, there has been no consensual module system for Prolog, hence no strong development of libraries, in sharp contrast to what exists in Java for instance. One difficulty comes from the call predicate which interferes with the protection of the code, an essential task of a module system. By distinguishing the called module code protection from the calling module code protection, we review the existing syntactic module systems for Prolog. We show that no module system ensures both forms of code protection, with the noticeable exceptions of Ciao-Prolog and XSB. We then present a formal module system for logic programs with calls and closures, define its operational semantics and formally prove the code protection property. Interestingly, we also provide an equivalent logical semantics of modular logic programs without calls nor closures, which shows how they can be translated into constraint logic programs over a simple module constraint system.