Abstract Interpretation over Non-deterministic Finite Tree Automata for Set-Based Analysis of Logic ProgramsJohn P. Gallagher, German Puebla, Abstract Interpretation over Non-deterministic Finite Tree Automata for Set-Based Analysis of Logic Programs. Practical Aspects of Declarative Languages, 4th International Symposium, PADL 2002, Portland, OR, USA, LNCS Vol. 2257. Shriram Krishnamurthi, C. R. Ramakrishnan, (eds.). ISBN 3-540-43092-X, pp. 243–261. January 2002. No electronic version available. External information
Set-based program analysis has many potential applications, including compiler optimisations, type-checking, debugging, verification and planning. One method of set-based analysis is to solve a set of set constraints derived directly from the program text. Another approach is based on abstract interpretation (with widening) over an infinite-height domain of regular types. Up till now only deterministic types have been used in abstract interpretations, whereas solving set constraints yields non-deterministic types, which are more precise. It was pointed out by Cousot and Cousot that set constraint analysis of a particular program P could be understood as an abstract interpretation over a finite domain of regular tree grammars, constructed from P. In this paper we define such an abstract interpretation for logic programs, formulated over a domain of non-deterministic finite tree automata, and describe its implementation. Both goal-dependent and goal-independent analysis are considered. Variations on the abstract domains operations are introduced, and we discuss the associated tradeoffs of precision and complexity. The experimental results indicate that this approach is a practical way of achieving the precision of set-constraints in the abstract interpretation framework.