Abstract
The subject of this paper is Abstract Interpretation of logic programs, based on Constraint Solving over Finite Domains. More specifically, we use Toupie, a Constraint language based on the μ-calculus. Fixpoint computation is the basic execution mechanism of this language. Therefore it is very convenient and efficient for Abstract Interpretation of logic programs. The following topics are covered in this paper. 1) The semantics and implementation of Toupie are described. 2) A class of abstract domains for logic programs is defined. This class can be viewed as an extension of the domain Prop ([9]) to a limited class of first order formulas with equality. It happens that the elements of this domain coincide with the objects manipulated by Toupie, i.e. 0+ formulas. 3) Transformation rules which allow the transformation of flat logic programs into Toupie programs are given. Execution of the Toupie programs on this abstract domains provides a correct bottom-up abstract interpretation of the corresponding logic programs, i.e. a complete description of the success patterns for the program. 4) An experimental evaluation of the resulting analysis tool was performed and is thoroughly described. The system was used to analyse the benchmark programs used for the same purpose in [13, 14]. Four different instances of the generic domain were evaluated: two variants of Prop and two domains for simple (but useful) type analyses. The results show that the system is very efficient and accurate on the benchmark programs. This seems to demonstrate that the proposed approach to abstract interpretation provides a versatile alternative to previous proposals for a significant class of analyses.Finally, we explain in the conclusion that the approach can be extended to top-down Abstract Interpretation of logic programs along three possible ways that we will investigate in the future.KeywordsLogic ProgramAbstract InterpretationProgram VariableSuccess PatternAbstract DomainThese 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.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.