Hostname: page-component-7b7567c8c-wxvwp Total loading time: 0 Render date: 2026-11-15T11:47:37.231Z Has data issue: false hasContentIssue false

Evaluation of the Implementation of an Abstract Interpretation Algorithm using Tabled CLP

Published online by Cambridge University Press:  20 September 2019

JOAQUÍN ARIAS
Affiliation:
IMDEA Software Institute and Universidad Politécnica de Madrid (e-mails: joaquin.arias@imdea.org, joaquin.arias@alumnos.upm.es, manuel.carro@imdea.org, manuel.carro@upm.es)
MANUEL CARRO
Affiliation:
IMDEA Software Institute and Universidad Politécnica de Madrid (e-mails: joaquin.arias@imdea.org, joaquin.arias@alumnos.upm.es, manuel.carro@imdea.org, manuel.carro@upm.es)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

CiaoPP is an analyzer and optimizer for logic programs, part of the Ciao Prolog system. It includes PLAI, a fixpoint algorithm for the abstract interpretation of logic programs which we adapt to use tabled constraint logic programming. In this adaptation, the tabling engine drives the fixpoint computation, while the constraint solver handles the LUB of the abstract substitutions of different clauses. That simplifies the code and improves performance, since termination, dependencies, and some crucial operations (e.g., branch switching and resumption) are directly handled by the tabling engine. Determining whether the fixpoint has been reached uses semantic equivalence, which can decide that two syntactically different abstract substitutions represent the same element in the abstract domain. Therefore, the tabling analyzer can reuse answers in more cases than an analyzer using syntactical equality. This helps achieve better performance, even taking into account the additional cost associated to these checks. Our implementation is based on the TCLP framework available in Ciao Prolog and is one-third the size of the initial fixpoint implementation in CiaoPP. Its performance has been evaluated by analyzing several programs using different abstract domains.

Information

Type
Original Article
Copyright
© Cambridge University Press 2019 
Supplementary material: PDF

Arias and Carro supplementary material

Appendix

Download Arias and Carro supplementary material(PDF)
PDF 206.9 KB