Abstract | ||
---|---|---|
In this paper we focus on modular logic languages where module composition is performed through union of clauses and where the set of definitions to be used in order to evaluate a goal can be extended during the computation through implication goals. We propose a novel implementation based on the Warren Abstract Machine that provides efficient execution of modular logic programs. This is achieved both by speeding up the search for (dynamic) bindings for predicate calls and by avoiding this search for computations that are certain to fail. The proposed implementation, in fact, exploits bit-vector representation for the current set of modules and bit-wise operations in order to speed up the search for predicate binding. With regard to search avoidance, we apply static analysis techniques to dynamic modular logic programs. In particular, we define an abstract interpretation framework that allows us to compute the minimal sets of modules (minimal contexts) that are needed for any successful computation of a given predicate. An abstract interpreter is able to automatically compute these minimal sets of modules once a propositional version of the program is given. The results of the analysis are exploited by the implementation in order to reduce the overhead due to useless computations destined to failure. |
Year | Venue | Keywords |
---|---|---|
1996 | SOFTWARE-CONCEPTS AND TOOLS | modular logic languages,implementation,program analysis,program transformation |
Field | DocType | Volume |
Programming language,Logic optimization,Computer science,Logic programming,Modular design,Programming language implementation | Journal | 17 |
Issue | ISSN | Citations |
4 | 0945-8115 | 1 |
PageRank | References | Authors |
0.36 | 6 | 3 |
Name | Order | Citations | PageRank |
---|---|---|---|
A. Ciampolini | 1 | 3 | 1.74 |
E. Lamma | 2 | 33 | 5.10 |
P. Mello | 3 | 120 | 17.55 |