Practical Aspects of Set Based Analysis

The set based approach to compile time analysis of logic programs has numerous advantages over other approaches, including a simple, intuitive deenition, and a very accurate and uniform treatment of term structure. However the algorithms for set based analysis that have been presented to date have focussed on establishing decidability results, and do not provide a practical basis for program analysis. This paper demonstrates that very substantial progress can be made towards a practical system by redesigning the algorithms according to implementation criteria, designing appropriate representations techniques, and exploiting the redundancy which is typically present. An implementation is described and experimental evidence is presented which suggests that set based analysis can be made practical for comprehensive and accurate analysis of logic programs.

[1]  Uday S. Reddy,et al.  Inference of Polymorphic Types for Logic Programs , 1989, NACLP.

[2]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[3]  Prateek Mishra,et al.  Towards a Theory of Types in Prolog , 1984, SLP.

[4]  Thom W. Frühwirth,et al.  Logic programs as types for logic programs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[5]  Joxan Jaffar,et al.  Semantic Types for Logic Programs , 1992, Types in Logic Programming.

[6]  John C. Reynolds,et al.  Automatic computation of data set definitions , 1968, IFIP Congress.

[7]  Joxan Jaffar,et al.  A finite presentation theorem for approximating logic programs , 1989, POPL '90.

[8]  Joxan Jaffar,et al.  An engine for logic program analysis , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[9]  Alexander Aiken,et al.  Implementing Regular Tree Expressions , 1991, FPCA.

[10]  Ehud Shapiro,et al.  A Type System for Logic Programs , 1988, J. Log. Program..

[11]  Nevin Charles Heintze,et al.  Set based program analysis , 1992 .