Abstract interpretation of logic programs using magic transformations

Saumya K Debray, Raghu Ramakrishnan

Research output: Contribution to journalArticle

16 Citations (Scopus)

Abstract

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.

Original languageEnglish (US)
Pages (from-to)149-176
Number of pages28
JournalJournal of Logic Programming
Volume18
Issue number2
DOIs
StatePublished - 1994
Externally publishedYes

Fingerprint

Abstract Interpretation
Data flow analysis
Logic Programs
Data Flow
Template
Bottom-up
Control Strategy
Algorithm Analysis
Fixpoint
Flow Control
Flow control
Termination
Completeness
Language

ASJC Scopus subject areas

  • Logic

Cite this

Abstract interpretation of logic programs using magic transformations. / Debray, Saumya K; Ramakrishnan, Raghu.

In: Journal of Logic Programming, Vol. 18, No. 2, 1994, p. 149-176.

Research output: Contribution to journalArticle

@article{10b925a325e7437e8373316eb278f962,
title = "Abstract interpretation of logic programs using magic transformations",
abstract = "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.",
author = "Debray, {Saumya K} and Raghu Ramakrishnan",
year = "1994",
doi = "10.1016/0743-1066(94)90050-7",
language = "English (US)",
volume = "18",
pages = "149--176",
journal = "Journal of Logic Programming",
issn = "1567-8326",
publisher = "Elsevier Inc.",
number = "2",

}

TY - JOUR

T1 - Abstract interpretation of logic programs using magic transformations

AU - Debray, Saumya K

AU - Ramakrishnan, Raghu

PY - 1994

Y1 - 1994

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

VL - 18

SP - 149

EP - 176

JO - Journal of Logic Programming

JF - Journal of Logic Programming

SN - 1567-8326

IS - 2

ER -