skip to main content
article
Open access

Experimental evaluation of a generic abstract interpretation algorithm for PROLOG

Published: 01 January 1994 Publication History

Abstract

Abstract interpretation of PROLOG programs has attracted many researchers in recent years, partly because of the potential for optimization in PROLOG compilers and partly because of the declarative nature of logic programming languages that make them more amenable to optimization than procedural languages. Most of the work, however, has remained at the theoretical level, focusing on the developments of frameworks and the definition of abstract domains.
This paper reports our effort to verify experimentally the practical value of this area of research. It describes the design and implementation of the generic abstract interpretation algorithm GAIA that we originally proposed in Le Charlier et al. [1991], its instantiation to a sophisticated abstract domain (derived from Bruynooghe and Janssens [1988]) containing modes, types, sharing, and aliasing, and its evaluation both in terms of performance and accuracy. The overall implementation (over 5000 lines of Pascal) has been systematically analyzed on a variety of programs and compared with the complexity analysis of Le Charlie et al. [1991] and the specific analysis systems of Hickey and Mudambi [1989], Taylor [1989; 1990], Van Roy and Despain [1990], and Warren et al. [1988].

References

[1]
~BARBUTI, R., GIACOBAZZI, R., AND LEVI, G. 1993. A general framework for semantics-based ~bottom-up abstract interpretation of logic programs. ACM Trans. Program. Lang. Syst. 15, 1 ~(Jan.), 133-181.
[2]
~BRUYNOOGHE, M. 1991. A practical framework for the abstract interpretation of logic pro- ~grams. J. Logic Program. 10, 2 (Feb.), 91-124.
[3]
~BRUYNOOGHE, M., AND JANSSENS, G. 1988. An instance of abstract interpretation: Integrating ~type and mode inferencing. In Proceedings of the 5th International Conference on Logic ~Programming. MIT Press, Cambridge, Mass., 669-683.
[4]
~BRUYNOOGHE, M., JANSSENS, G., CALLEBAUT, A., AND DEMOEN, B. 1987. Abstract interpretation: ~Towards the global optimization of Prolog programs. In Proceedings of the 1987 Symposium on ~Logic Programming. IEEE, New York, 192-204.
[5]
~CODISH, M., GALLAGHER, J., AND SHAPIRO, E. 1989. Using safe approximations of fixed points ~for analysis of logic programs. In Meta-Programming in Logic Programming. MIT Press, ~Cambridge, Mass.
[6]
~CODOGNET, C., CODOGNET, P., AND CORSINI, J.M. 1990. Abstract interpretation of concurrent ~logic languages. In Proceedings of the North American Conference on Logic Programming ~(NACLP-90). MIT Press, Cambridge, Mass.
[7]
~CORSINI, A., AND FILth, G. 1989. A complete framework for the abstract interpretation of logic ~programs: Theory and applications. Res. Rep., Univ. of Padova, Italy.
[8]
~CousoT, P., AND COUSOT, R~ 1977. Abstract interpretation: A unified lattice model for static ~analysis of programs by construction or approximation of fixpoints. In Conference Record of the ~4th ACM Symposium on POPL. ACM, New York, 238-252.
[9]
~COUSOT, P., AND COUSOT, R. 1992. Abstract interpretation and application to logic programs. ~J. Logic Program. 13, 2-3, 103-180.
[10]
~DEBRAY, S. 1986. Global optimizations of logic programs. Ph.D. thesis, Dept. of Computer ~Science, S.U.N.Y., Stony Brook, N.Y.
[11]
~DEBRAY, S., AND MISHRA, P. 1988. Denotational and operational semantics for PROLOG. J. ~Logic Program. 5, 1, 61-91.
[12]
~DINCBAS, M., SIMONIS, H., AND VAN HENTENRYCK, P. 1990. Solving large combinatorial prob- ~lems in logic programming. J. Logic Program. 8, 1-2, 75-93.
[13]
~DOBRY, T. P. 1990. A High Performance Architecture for Prolog. Kluwer, Deventer, The ~Netherlands.
[14]
~ENGLEBERT, V., AND ROLAND, D. 1992. Abstract interpretation of PROLOG programs: Opti- ~mizations of an implementation. M~moire de licence et maltrise en Informatique, Dept. of ~Computer Science, Univ. of Namur, Belgium.
[15]
~ENGLEBERT, V., LE CHARMER, B., ROLAND, D., AND VAN HENTENRYCK, P. 1993. Generic abstract ~interpretation algorithms for Prolog: Two optimization techniques and their experimental ~evaluation. Softw. Pract. Exper. 23, 4 (Apr.).
[16]
~GAMBOSI, G., NESETRIL, J., AND TALAMO, M. 1987. Posets, Boolean representations and quick ~path searching. In Proceedings of the 14th International: Colloquium on Automata, Languages ~and Programming (ICALP'87).
[17]
~HERMENEGILDO, M., WARREN, R., AND DEBRAY, S. 1992. Global flow analysis as a practical ~compilation tool. J. Logic Program. 13, 4, 349-367.
[18]
~HICKEY, T., AND MUDAMBI, S. 1989. Global compilation of Prolog. J. Logic Program. 7, 3, ~193-230.
[19]
~JACOBS, D., AND LANGEN, A. 1989. Accurate and efficient approximation of variable aliasing in ~logic programs. In Proceedings of the North American Conference on Logic Programming ~(NACLP-89). MIT Press, Cambridge, Mass.
[20]
~JANSSENS, G. 1990. Deriving run time propergiee of logic program8 by meane of abstract ~interpretation. Ph.D. thesis, Dept. Computerwetenschappen, Katholieke Universiteit Leuven, ~Leuven, Belgium.
[21]
~JONES, N. D. AND MYCROFT, A. 1986. Dataflow analysis of applicative programs using minimal ~function graphs. In Proceedzngs of 13th ACM Symposzum on Principles of Programming ~Languages. ACM, New York, 123-142.
[22]
~JONES, N. D., AND SONDERGAARD, H. 1987. A Semantics-Based Framework for the Abstract ~Interpretatton of Prolog. Ellis Horwood, Chichester, U.K., 123-142.
[23]
~LE CHARLIER, B., AND VAN HENTENRYCK, P. 1992a. Experimental evaluation of a generic ~abstract interpretation algorithm for Prolog. In 4th IEEE International Conference on Com- ~puter Languages ( ICCL'92 ). IEEE, New York.
[24]
~LE CHARLIER, B., AND VAN HENTENRYCK, P. 1992b. On the design of generic abstract interpre- ~tation frameworks. In Workshop on Statw Analysis ( WSA'92 ).
[25]
~LE CHARLIER, B., AND VAN HENTENRYCK, P. 1992c. Reexecution in abstract interpretation of ~Prolog. In Proceedzngs of the International Jotnt Conference and Symposzum on Logzc Pro- ~grammzng ( JICSLP-92 ).
[26]
~LE CHARLIER, B., AND VAN HENTENRYCK, P. 1992d. A universal top-down fixpoint algorithm. ~Tech. Rep. CS-92-25, Computer Science Dept, Brown Univ., Prowdence, R.I.
[27]
~LE CHARLIER, B., MUSUMBU, K., AND VAN HENTENRYCK, P. 1990. Efficient and accurate algo- ~rithms for the abstract interpretation of Protog programs. Res. Paper RP-90/9, Univ. of ~Namur, Namur, Belgium.
[28]
LE CHARLIER, B. MUSUMBU, K., AND VAN HENTENRYCK, P. 1991. A generic abstract interpreta- ~tion algorithm and its complexity analysis (extended abstract). In 8th Internatwnal Conference ~on Logic Programming (ICLP-91). MIT Press, Cambridge, Mass., 64-78.
[29]
~MARRIOTT, K., AND SONDERGAARD, H. 1988. Bottom-up abstract interpretation of logic pro- ~grams In Proceedings of the 5th International Conference on Logic Programming. MIT Press, ~Cambridge, Mass., 733-748.
[30]
~MARRIOTT, K., AND SONDERGAARD, H. 1989a. Notes for a tutorial on abstract interpretation of ~logic programs. In North American Conference on Logtc Programming.
[31]
~MARRIOTT, K., AND SONDERGAARD, H. 1989b. Semantics-based dataflow analysis of logic pro- ~grams. In Information Processzng-89. 601-606.
[32]
~MELLISH, C. 1981. The automatic generation of mode declarations for Prolog programs. Tech. ~Rep. DAI 163, Dept. of Artificial Intelligence, Univ. of Edinburgh, Scotland.
[33]
~MELLISH, C. 1987. Abstract Interpretatwn of Prolog Programs. Ellis Horwood, Chichester, ~U.K., 181-198.
[34]
~MULKERS, A., WINSBOROUGH, W., AND BRUYNOOGHE, M. 1990. Analysis of shared data struc- ~tures for compile-time garbage collection in logic programs. In 7th Internatwnal Conference on ~Logzc Programming (ICLP-90). MIT Press, Cambridge, Mass., 747-764.
[35]
~MUSUMBU, K. 1990. Interpretation abstraite de programmes Prolog. Ph.D. thesis, Univ. of ~Namur, Belgium.
[36]
MUTHUKUMAR, K., AND HERMENEGILDO, M. 1989. Determination of variable dependence infor- ~mation through abstract interpretation. In Proceedtngs of the North American Conference on ~Logic Programming (NACLP-89). MIT Press, Cambridge, Mass., 166-188.
[37]
~NILSSON, U. 1989. A systematic approach to abstract interpretation of logic programs, Ph.D. ~thesis, Dept. of Computer and Information Science, Linkoping Univ., Linkoping, Sweden.
[38]
~SONDERGAARD, H. 1986. An application of abstract interpretation of logic programs: Occur ~check reductmn. In Proceedings ofESOP'86 (Sarrbruecken, Germany). Springer-Verlag, Berlin, ~327-338.
[39]
~STERLING, L., AND SHAPII%O, E. 1986. The Art of Prolog: Advanced Programming Tcchnicl~c6. ~MIT Press, Cambridge, Mass.
[40]
~TAMASSIA, R., AND PREPARATA, F. P. 1990. Dynamic maintenance of planar digraphs, with ~applications. Algorithmica 5, 4, 509-527.
[41]
~TAYLOR, A. 1989. Removal of dereferencing and trailing in Prolog compilation. In 6th In terna- ~ttonal Conference on Logic Programming. MIT Press, Cambridge, Mass., 48-62.
[42]
~TAYLOR, A. 1990. LIPS on MIPS: Results from a Prolog compder for a RISC. In 7th Interna- ~tional Conference on Logic Programmzng (ICLP-90). MIT Press, Cambridge, Mass., 174-188.
[43]
~VAN HENTENRYCK, P. 1989. Constratnt Satisfaction tn Logtc Programming. Logic Program- ~ming Series. MIT Press, Cambridge, Mass.
[44]
~VAN ROY, P., AND DESPAIN, A. 1990. The benefits of global dataflow analysis for an optimizing ~Prolog compiler. In Proceedings of the North American Conference on Logic Programming ~(NACLP-90). MIT Press, Cambridge, Mass., 501-515.
[45]
~WARREN, R., HERMEDEGILDO, M., AND DEBRAY, S. 1988. On the practicality of global flow ~analysis of logic programs. In Proceedings of the 5th International Conference on Logic~ ~Programmzng. MIT Press, Cambridge, Mass., 684-699.
[46]
~WINSBOROUGH, W. 1992. Multiple specialization using minimal-function graph semantics. J. ~Logic Program. 13 4.
[47]
~WINSBOROUGH, W.H. 1987. A minimal function graph semantics for logic programs. Tech. Rep. ~TR-711, Computer Science Dept., Univ. of Wisconsin at Madison.

Cited By

View all

Index Terms

  1. Experimental evaluation of a generic abstract interpretation algorithm for PROLOG

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Transactions on Programming Languages and Systems
      ACM Transactions on Programming Languages and Systems  Volume 16, Issue 1
      Jan. 1994
      172 pages
      ISSN:0164-0925
      EISSN:1558-4593
      DOI:10.1145/174625
      Issue’s Table of Contents

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 01 January 1994
      Published in TOPLAS Volume 16, Issue 1

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. PROLOG
      2. abstract interpretation
      3. fixpoint algorithm

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)100
      • Downloads (Last 6 weeks)16
      Reflects downloads up to 21 Jan 2025

      Other Metrics

      Citations

      Cited By

      View all

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Login options

      Full Access

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media