Program fragments, linking, and modularization
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
A New Module System for Prolog
CL '00 Proceedings of the First International Conference on Computational Logic
A Documentation Generator for (C)LP Systems
CL '00 Proceedings of the First International Conference on Computational Logic
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Journal of Functional Programming
Cadmium: An Implementation of ACD Term Rewriting
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Constraint Handling Rules
On the portability of prolog applications
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
An overview of ciao and its design philosophy
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
We address the problem of developing mechanisms for easily implementing modular extensions to modular (logic) languages. By (language) extensions we refer to different groups of syntactic definitions and translation rules that extend a language. Our use of the concept of modularity in this context is twofold. We would like these extensions to be modular, in the sense above, i.e., we should be able to develop different extensions mostly separately. At the same time, the sources and targets for the extensions are modular languages, i.e., such extensions may take as input separate pieces of code and also produce separate pieces of code. Dealing with this double requirement involves interesting challenges to ensure that modularity is not broken: first, combinations of extensions (as if they were a single extension) must be given a precise meaning. Also, the separate translation of multiple sources (as if they were a single source) must be feasible. We present a detailed description of a code expansion-based framework that proposes novel solutions for these problems. We argue that the approach, while implemented for Ciao, can be adapted for other Prolog-based systems and languages.