|
ABSTRACT
Constraint Logic Programming (CLP) languages extend logic programming by allowing the use of constraints from different domains such as real numbers or Boolean functions. They have proved to be ideal for expressing problems that require interactive mathematical modeling and complex combinatorial optimization problems. However, CLP languages have mainly been considered as research systems, useful for rapid prototyping, by not really competitive with more conventional programming languages where efficiency is a more important consideration. One promising approach to improving the performance of CLP systems is the use of powerful program optimizations to reduce the cost of constraint solving. We extend work in this area by describing a new optimizing compiler for the CLP language CLP( R ). The compiler implements six powerful optimizations: reordering of constraints, removal of redundant variables, and specialization of constraints which cannot fail. Each program optimization is designed to remove the overhead of constraint solving when possible and keep the number of constraints in the store as small as possible. We systematically evaluate the effectiveness of each optimization in isolation and in combination. Our empirical evaluation of the compiler verifies that optimizing compilation can be made efficient enough to allow compilation of real-world programs and that it is worth performing such compilation because it gives significant time and space performance improvements.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
ARMSTRONG, T., MARRIOTT, I~., SCHACHTE, P., AND SONDERGAARD, H. 1994. Boolean functions for dependency analysis: Algebraic properties and efficient representation. In Proceedings of the 1st International Static Analysis Symposium, B. Le Charlier, Ed. Lecture Notes in Computer Science, vol. 864. Springer-Verlag, Berlin, 266-280.
|
| |
3
|
|
| |
4
|
|
 |
5
|
M. Garcia de la Banda , M. Hermenegildo , M. Bruynooghe , V. Dumortier , G. Janssens , W. Simoens, Global analysis of constraint logic programs, ACM Transactions on Programming Languages and Systems (TOPLAS), v.18 n.5, p.564-614, Sept. 1996
[doi> 10.1145/232706.232734]
|
| |
6
|
|
| |
7
|
HERMENEGILDO, M., PUEBLA, G., MARRIOTT, I~., AND STUCKEY, P. 1995. Incremental analysis of logic programs. In Logic Programming: Proceedings of the 12th International Conference, L. Sterling, Ed. MIT Press, Cambridge, Mass., 797-814.
|
 |
8
|
Joxan Jaffar , Peter J. Stuckey , Spiro Michaylov , Roland H. C. Yap, An abstract machine for CLP(R), Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.128-139, June 15-19, 1992, San Francisco, California, United States
|
 |
9
|
|
| |
10
|
JORGENSEN, N., MARRIOTT, I~., AND MICHAYLOV, S. 1991. Some global compile-time optimizations for CLP(/E). In Logic Programming: Proceedings of the 1991 International Symposium, V. Saraswat and K. Ueda, Eds. MIT Press, Cambridge, Mass., 420-434.
|
| |
11
|
Andrew D. Kelly , Andrew D. Macdonald , Kim Marriott , Harald Søndergaard , Peter J. Stuckey , Roland H. C. Yap, An Optimizing Compiler for CLP(R), Proceedings of the First International Conference on Principles and Practice of Constraint Programming, p.222-239, September 19-22, 1995
|
| |
12
|
KELLY, A., MACDONALD, A., MARRIOTT, I~., STUCKEY, P., AND YAP, R. 1996. Effectiveness of optimizing compilation of CLP(/E). In Logic Programming: Proceedings of the 1992 Joint International Conference and Symposium, M. Maher, Ed. MIT Press, Cambridge, Mass., 37-51.
|
| |
13
|
KELLY, A., MARRIOTT, I~., SONDERGAARD, H., AND STUCKEY, P. 1997. A generic object oriented incremental analyser for constraint logic programs. In Proceedings of the 20th Australasian Computer Science Conference. 92-101.
|
 |
14
|
|
| |
15
|
|
| |
16
|
|
| |
17
|
MARRIOTT, I~., SONDERGAARD, H., STUCKEY, P. J., AND YAP, R. 1994. Optimizing compilation for CLP(/E). In Proceedings of the 17th Australian Computer Science Conference, G. Gupta, Ed. 551-560.
|
 |
18
|
|
| |
19
|
MARRIOTT, I~. AND STUCKEY, P. 1998. Programming with Constraints: an Introduction. MIT Press, Cambridge, Mass.
|
| |
20
|
|
 |
21
|
|
| |
22
|
|
| |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
| |
27
|
|
REVIEW
"Jeffrey B. Putnam : Reviewer"
Constraint programming in its various forms is one of the more
interesting technologies of the last few years. It provides ways of
using a declarative style to define the relationships of usually numeric
variables. Then some of these variables
more...
|