TY - JOUR
T1 - Abstract interpretation of logic programs using magic transformations
AU - Debray, Saumya
AU - Ramakrishnan, Raghu
N1 - Funding Information:
*The work of S. Debray was supported in part by NSF grant CCR-87-02939. The work of R. Ramakrishnan was supported in part by an IBM Faculty Development Award, a David and Lucille Packard Foundation Fellowship in Science and Engineering, and NSF grant IRI-88-04319. _ Address correspondence to Saumya Debray, Department of Computer Science, University of Arizona-Tucson, Tucson, Arizona 85721. Received July 1990; revised May 1991, July 1993; accepted August 1993.
PY - 1994/2
Y1 - 1994/2
N2 - In dataflow analysis of logic programs, information must be propagated according to the control strategy of the language under consideration. However, for languages with top-down control flow, naive top-down dataflow analyses may have problems guaranteeing completeness and/or termination. What is required in the dataflow analysis is a bottom-up fixpoint computation, guided by the (possibly top-down) control strategy of the language. This paper describes the application of the magic templates algorithm, originally devised as a technique for efficient bottom-up computation of logic programs, to dataflow analysis of logic programs. It turns out that a direct application of the magic templates algorithm can result in an undesirable loss in precision, because connections between "calling patterns" and the corresponding "success patterns" may be lost. We show how the original magic templates algorithm can be modified to avoid this problem, and prove that the resulting analysis algorithm is at least as precise as any other abstract interpretation that uses the same abstract domain and abstract operations.
AB - In dataflow analysis of logic programs, information must be propagated according to the control strategy of the language under consideration. However, for languages with top-down control flow, naive top-down dataflow analyses may have problems guaranteeing completeness and/or termination. What is required in the dataflow analysis is a bottom-up fixpoint computation, guided by the (possibly top-down) control strategy of the language. This paper describes the application of the magic templates algorithm, originally devised as a technique for efficient bottom-up computation of logic programs, to dataflow analysis of logic programs. It turns out that a direct application of the magic templates algorithm can result in an undesirable loss in precision, because connections between "calling patterns" and the corresponding "success patterns" may be lost. We show how the original magic templates algorithm can be modified to avoid this problem, and prove that the resulting analysis algorithm is at least as precise as any other abstract interpretation that uses the same abstract domain and abstract operations.
UR - http://www.scopus.com/inward/record.url?scp=0028374909&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0028374909&partnerID=8YFLogxK
U2 - 10.1016/0743-1066(94)90050-7
DO - 10.1016/0743-1066(94)90050-7
M3 - Article
AN - SCOPUS:0028374909
SN - 0743-1066
VL - 18
SP - 149
EP - 176
JO - The Journal of Logic Programming
JF - The Journal of Logic Programming
IS - 2
ER -