Skip to main content

Abstract Interpretation with Specialized Definitions

  • Conference paper
Static Analysis (SAS 2006)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4134))

Included in the following conference series:

Abstract

The relationship between abstract interpretation and partial evaluation has received considerable attention and (partial) integrations have been proposed starting from both the partial evaluation and abstract interpretation perspectives. In this work we present what we argue is the first generic algorithm for efficient and precise integration of abstract interpretation and partial evaluation from an abstract interpretation perspective. Taking as starting point state-of-the-art algorithms for context-sensitive, polyvariant abstract interpretation and (abstract) partial evaluation of logic programs, we present an algorithm which combines the best of both worlds. Key ingredients include the accurate success propagation inherent to abstract interpretation and the powerful program transformations achievable by partial deduction. In our algorithm, the calls which appear in the analysis graph are not analyzed w.r.t. the original definition of the procedure but w.r.t. specialized definitions of these procedures. Such specialized definitions are obtained by applying both unfolding and abstract executability. Also, our framework is parametric w.r.t. different control strategies and abstract domains. Different combinations of these parameters correspond to existing algorithms for program analysis and specialization. Our approach efficiently computes strictly more precise results than those achievable by each of the individual techniques. The algorithm is one of the key components of CiaoPP, the analysis and specialization system of the Ciao compiler.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Albert, E., Puebla, G., Gallagher, J.P.: Non-leftmost unfolding in partial evaluation of logic programs with impure predicates. In: Hill, P.M. (ed.) LOPSTR 2005. LNCS, vol. 3901, pp. 115–132. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  2. Bruynooghe, M.: A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming 10, 91–124 (1991)

    Article  MathSciNet  MATH  Google Scholar 

  3. Bueno, F., Cabeza, D., Carro, M., Hermenegildo, M., López-García, P., Puebla, G.: The Ciao Prolog System. Reference Manual (v1.8). The Ciao System Documentation Series–TR CLIP4/2002.1, School of Computer Science, Technical University of Madrid (UPM) (May 2002), System and on-line version of the manual available at: http://clip.dia.fi.upm.es/Software/Ciao/

  4. Consel, C., Koo, S.C.: Parameterized partial deduction. ACM Transactions on Programming Languages and Systems 15(3), 463–493 (1993)

    Article  Google Scholar 

  5. Cousot, P., Cousot, R.: Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Proc. of POPL 1977, pp. 238–252 (1977)

    Google Scholar 

  6. Cousot, P., Cousot, R.: Systematic Design of Program Transformation Frameworks by Abstract Interpretation. In: POPL 2002, pp. 178–190. ACM, New York (2002)

    Chapter  Google Scholar 

  7. De Schreye, D., Glück, R., Jørgensen, J., Leuschel, M., Martens, B., Sørensen, M.H.: Conjunctive Partial Deduction: Foundations, Control, Algorihtms, and Experiments. Journal of Logic Programming 41(2&3), 231–277 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  8. Gallagher, J., Codish, M., Shapiro, E.: Specialisation of Prolog and FCP Programs Using Abstract Interpretation. NGC 6(2–3), 159–186 (1988)

    Article  MATH  Google Scholar 

  9. Gallagher, J.P., Peralta, J.C.: Regular tree languages as an abstract domain in program specialisation. HOSC 14(2,3), 143–172 (2001)

    MATH  Google Scholar 

  10. Gallagher, J.P.: Static Analysis for Logic Program Specialization. In: Workshop on Static Analysis WSA 1992, pp. 285–294 (1992)

    Google Scholar 

  11. Gallagher, J.P.: Tutorial on specialisation of logic programs. In: Proc. of PEPM 1993, pp. 88–98. ACM Press, New York (1993)

    Chapter  Google Scholar 

  12. Hermenegildo, M., Puebla, G., Marriott, K., Stuckey, P.: Incremental Analysis of Constraint Logic Programs. ACM TOPLAS 22(2), 187–223 (2000)

    Article  Google Scholar 

  13. Jones, N.D.: Combining Abstract Interpretation and Partial Evaluation. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 396–405. Springer, Heidelberg (1996)

    Google Scholar 

  14. Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice Hall, New York (1993)

    MATH  Google Scholar 

  15. Leuschel, M.: Program Specialisation and Abstract Interpretation Reconciled. In: Joint International Conference and Symposium on Logic Programming (June 1998)

    Google Scholar 

  16. Leuschel, M.: A framework for the integration of partial evaluation and abstract interpretation of logic programs. ACM TOPLAS 26(3), 413–463 (2004)

    Article  Google Scholar 

  17. Leuschel, M., Bruynooghe, M.: Logic program specialisation through partial deduction: Control issues. Theory and Practice of Logic Programming 2(4 & 5), 461–515 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  18. Leuschel, M., De Schreye, D.: Logic program specialisation: How to be more specific. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 137–151. Springer, Heidelberg (1996)

    Google Scholar 

  19. Leuschel, M.A., Gruner, S.: Abstract conjunctive partial deduction using regular types and its application to model checking. In: Pettorossi, A. (ed.) LOPSTR 2001. LNCS, vol. 2372, p. 91. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  20. Lloyd, J.W.: Foundations of Logic Programming, 2nd extended edn. Springer, Heidelberg (1987)

    Google Scholar 

  21. Lloyd, J.W., Shepherdson, J.C.: Partial Evaluation in Logic Programming. Journal of Logic Programming 11(3–4), 217–242 (1991)

    Article  MathSciNet  MATH  Google Scholar 

  22. Muthukumar, K., Hermenegildo, M.: Combined Determination of Sharing and Freeness of Program Variables Through Abstract Interpretation. In: 1991 International Conference on Logic Programming, pp. 49–63. MIT Press, Cambridge (1991)

    Google Scholar 

  23. Puebla, G., Hermenegildo, M.: Optimized Algorithms for the Incremental Analysis of Logic Programs. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS, vol. 1145, pp. 270–284. Springer, Heidelberg (1996)

    Google Scholar 

  24. Puebla, G., Hermenegildo, M.: Abstract Multiple Specialization and its Application to Program Parallelization. JLP 41(2&3), 279–316 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  25. Puebla, G., Hermenegildo, M.: Abstract Specialization and its Applications. In: Proc. of PEPM 2003, pp. 29–43. ACM Press, New York (invited talk, 2003)

    Chapter  Google Scholar 

  26. Puebla, G., Hermenegildo, M., Gallagher, J.: An Integration of Partial Evaluation in a Generic Abstract Interpretation Framework. In: PEPM 1999. BRISC Series, vol. NS-99-1, pp. 75–85. Univ. of Aarhus, Denmark (1999)

    Google Scholar 

  27. Vaucheret, C., Bueno, F.: More precise yet efficient type inference for logic programs. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol. 2477, pp. 102–116. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Puebla, G., Albert, E., Hermenegildo, M. (2006). Abstract Interpretation with Specialized Definitions. In: Yi, K. (eds) Static Analysis. SAS 2006. Lecture Notes in Computer Science, vol 4134. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11823230_8

Download citation

  • DOI: https://doi.org/10.1007/11823230_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-37756-6

  • Online ISBN: 978-3-540-37758-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics