Converting One Type-Based Abstract Domain to Another

  • John P. Gallagher
  • Germán Puebla
  • Elvira Albert
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3901)


The specific problem that motivates this paper is how to obtain abstract descriptions of the meanings of imported predicates (such as built-ins) that can be used when analysing a module of a logic program with respect to some abstract domain. We assume that abstract descriptions of the imported predicates are available in terms of some “standard” assertions. The first task is to define an abstract domain corresponding to the assertions for a given module and express the descriptions as objects in that domain. Following that they are automatically transformed into the analysis domain of interest. We develop a method which has been applied in order to generate call and success patterns from the CiaoPP assertions for built-ins, for any given regular type-based domain. In the paper we present the method as an instance of the more general problem of mapping elements of one abstract domain to another, with as little loss in precision as possible.


Logic Program Abstract Interpretation Binary Decision Diagram Type Rule Abstract Domain 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Conference Record of the 6th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio,Texas, pp. 269–282. ACM Press, New York (1979)Google Scholar
  2. 2.
    Hermenegildo, M.V., Puebla, G., Bueno, F., López-García, P.: Integrated Program Debugging, Verification, and Optimization Using Abstract Interpretation (and The Ciao System Preprocessor). Science of Computer Programming 58(1–2) (2005)Google Scholar
  3. 3.
    Gallagher, J.P., Henriksen, K.S.: Abstract domains based on regular types. In: Demoen, B., Lifschitz, V. (eds.) ICLP 2004. LNCS, vol. 3132, pp. 27–42. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    Filè, G., Giacobazzi, R., Ranzato, F.: A unifying view on abstract domain design. ACM Computing Surveys 28(2), 333–336 (1996)CrossRefGoogle Scholar
  5. 5.
    Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: The ASTREÉ Analyzer. In: Sagiv, S. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 21–30. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Comon, H., Dauchet, M., Gilleron, R., Jacquemard, F., Lugiez, D., Tison, S., Tommasi, M.: Tree Automata Techniques and Applications (1999),
  7. 7.
    Lloyd, J.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1987)CrossRefzbMATHGoogle Scholar
  8. 8.
    Craig, S., Gallagher, J.P., Leuschel, M., Henriksen, K.S.: Fully automatic binding time analysis for Prolog. In: Bruynooghe, M. (ed.) LOPSTR 2004. LNCS, vol. 3018, pp. 61–70. Springer, Heidelberg (2004)Google Scholar
  9. 9.
    Boulanger, D., Bruynooghe, M., Denecker, M.: Abstracting s-semantics using a model-theoretic approach. In: Penjam, J. (ed.) PLILP 1994. LNCS, vol. 844, pp. 432–446. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  10. 10.
    Boulanger, D., Bruynooghe, M.: A systematic construction of abstract domains. In: LeCharlier, B. (ed.) SAS 1994. LNCS, vol. 864, pp. 61–77. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  11. 11.
    Gallagher, J.P., Boulanger, D., Sağlam, H.: Practical model-based static analysis for definite logic programs. In: Lloyd, J.W. (ed.) Proc. of International Logic Programming Symposium, MIT Press, pp. 351–365. MIT Press, Cambridge (1995)Google Scholar
  12. 12.
    Gallagher, J.P., Henriksen, K.S., Banda, G.: Techniques for scaling up analyses based on pre-interpretations. In: Gabbrielli, M., Gupta, G. (eds.) ICLP 2005. LNCS, vol. 3668, pp. 280–296. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  13. 13.
    Marriott, K., Søndergaard, H.: Precise and efficient groundness analysis for logic programs. LOPLAS 2(1-4), 181–196 (1993)CrossRefzbMATHGoogle Scholar
  14. 14.
    Iwaihara, M., Inoue, Y.: Bottom-up evaluation of logic programs using binary decision diagrams. In: Yu, P.S., Chen, A.L.P. (eds.) ICDE, pp. 467–474. IEEE Computer Society, Los Alamitos (1995)Google Scholar
  15. 15.
    Whaley, J., Lam, M.S.: Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In: Pugh, W., Chambers, C. (eds.) PLDI, pp. 131–144. ACM, New York (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • John P. Gallagher
    • 1
  • Germán Puebla
    • 2
  • Elvira Albert
    • 3
  1. 1.Department of Computer ScienceUniv. of RoskildeDenmark
  2. 2.School of Computer ScienceTechnical Univ. of MadridSpain
  3. 3.School of Computer ScienceComplutense Univ. of MadridSpain

Personalised recommendations