The 3 R's of optimizing constraint logic programs
1993, Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '93
https://doi.org/10.1145/158511.158685Abstract
Central to constraint logic programming (CLP) languages is the notion of a global constraint solver which is queried to direct execution and to which constraints are monotonically added. We present a methodology for use in the compilation of CLP languages which is designed to reduce the overhead of the global constraint solver. This methodology is based on three optimizations. The first, refinement, involves adding new constraints, which in effect make information available earlier in the computation, guiding subsequent execution away from unprofitable choices. The second, removal, involves eliminating constraints from the solver when they are redundant. The last, reordering, involves moving constraint addition later and constraint remowd earlier in the computation. Determining the applicability of each optimization requires sophisticated global analysis. These analyses are based on abstract interpretation and provide information about potential and definite interaction between constraints.
References (17)
- P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Pro- grams by Construction or Approximation of Fix- points. In Proc. Fourth Ann. ACM Symp. Prin- ciples of Programming Languages, pages 238-252.
- P. Cousot and R. Cousot. Systematic Design of Program Analysis Frameworks. In Proc. Sixth Ann. ACM Symp. Principles of Programming Lan- guages, pages 269-282.
- P. Cousot and N. Halbwachs. Automatic Discovery of Linear Restraints among Variables of a Program. In Fifth ACM Symp. on Principles of Programming Languages, 84-96, 1978.
- J.D. Darlington, Y.G. Guo, and H.P. Pull. A New Perspective on Integrating Functional and Logic Languages. In Procs. Fifth Generation Computer Systems 1992, Tokyo, Vol. 2, 682-693. June 1992.
- S. K. Debray and D. S. Warren. Functional Com- putations in Logic Programs. ACM Transactions on Programming Languages and Systems 11 (3): 451-481, 1989.
- D.B. Kemp, K. Ramamohanarao, I. Balbin, and K. Meenakshi. Propagating constraints in recursive deductive databases. In E. Lusk and R. Overbeek, editors, Proc. First North American Conj. on Logic Programming, 981-998, Cleveland, October 1989.
- M.M. Gorlick, C.F. Kesselman, D.A. Marotta, and D.S. Parker. Mockingbird: a Logical Methodology for Testing. Journal of Logic Programming 8:95- 119, 1990.
- J. Jaffar and J.-L. Lassez. Constraint Logic Programming. In Proc. Fourteenth Ann. ACM Symp. Principles of Programming Languages, 111-
- J. Jaffar, S. Michaylov, P. Stuckey, and R. Yap.
- The CLP(73) Language and System. ACM Trans- actions on Programming Languages and Systems, 14(3), 339-395, July 1992.
- J. Jaffar, S. Michaylov, P. Stuckey, and R. Yap. An Abstract Machine for CLP(7?). In Proc ACM SIGPLAN Conf. on Programming Language De- sign and Implementation, 128-139, San Francisco, June 1992.
- N. Jorgensen, K. Marriott, and S. Michaylov. Some Global Compile-Time Optimization for CLP(Z).
- In V. Saraswat and K. Ueda, editors, Proc. 1991 Int. Symp on Logic Programming 420-434, San Diego, October 1991.
- P.C. Kanellakis, G.M. Kuper, and P. Revesz. Con- straint Query Languages. In Proc. ACM Symp. on Principles of Database Systems, 299-313, Nashville, April 1990.
- C. Lassez, K. McAloon, and R. Yap. Constraint Logic Programming and Options Trading. IEEE Expert 2:42-50, 1987.
- K. Marriott, L. Naish and J.-L. Lassez. Most Spe- cific Logic Programs. In R. Kowalski and K. Bowen, [15] [16] [17] [18] [19] editors, Logic Programming: Proc. Fifth Int. Conf. Symp. MIT Press, 1988.
- K. Marriott and H. S@ndergaard. Analysis of Con- straint Logic Programs. In Proc. of the North American Conf. on Logic Programming, 521-540, Austin, October 1990.