Flow analysis of dynamic logic programs

Research output: Contribution to journalArticle

8 Citations (Scopus)

Abstract

Research on flow analysis and optimization of logic programs typically assumes that the programs being analyzed are static, i.e. any code that can be executed at runtime is available for analysis at compile time. This assumption may not hold for "real" programs, which can contain dynamic goals of the form call(X), where X is a variable at compile time, or where predicates may be modified via features like assert and retract. In such contexts, a compiler must be able to take the effects of such dynamic constructs into account in order to perform nontrivial flow analyses that can be guaranteed to be sound. This paper outlines how this may be done for certain kinds of dynamic programs. Our techniques allow analysis and optimization techniques that have been developed for static programs to be extended to a large class of "well-behaved" dynamic programs.

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

Fingerprint

Dynamic Logic
Logic Programs
Retract
Compiler
Predicate
Optimization Techniques
Acoustic waves
Optimization

ASJC Scopus subject areas

  • Logic

Cite this

Flow analysis of dynamic logic programs. / Debray, Saumya K.

In: Journal of Logic Programming, Vol. 7, No. 2, 1989, p. 149-176.

Research output: Contribution to journalArticle

@article{a34b29adea2b4863a99e70452ca19034,
title = "Flow analysis of dynamic logic programs",
abstract = "Research on flow analysis and optimization of logic programs typically assumes that the programs being analyzed are static, i.e. any code that can be executed at runtime is available for analysis at compile time. This assumption may not hold for {"}real{"} programs, which can contain dynamic goals of the form call(X), where X is a variable at compile time, or where predicates may be modified via features like assert and retract. In such contexts, a compiler must be able to take the effects of such dynamic constructs into account in order to perform nontrivial flow analyses that can be guaranteed to be sound. This paper outlines how this may be done for certain kinds of dynamic programs. Our techniques allow analysis and optimization techniques that have been developed for static programs to be extended to a large class of {"}well-behaved{"} dynamic programs.",
author = "Debray, {Saumya K}",
year = "1989",
doi = "10.1016/0743-1066(89)90013-7",
language = "English (US)",
volume = "7",
pages = "149--176",
journal = "Journal of Logic Programming",
issn = "1567-8326",
publisher = "Elsevier Inc.",
number = "2",

}

TY - JOUR

T1 - Flow analysis of dynamic logic programs

AU - Debray, Saumya K

PY - 1989

Y1 - 1989

N2 - Research on flow analysis and optimization of logic programs typically assumes that the programs being analyzed are static, i.e. any code that can be executed at runtime is available for analysis at compile time. This assumption may not hold for "real" programs, which can contain dynamic goals of the form call(X), where X is a variable at compile time, or where predicates may be modified via features like assert and retract. In such contexts, a compiler must be able to take the effects of such dynamic constructs into account in order to perform nontrivial flow analyses that can be guaranteed to be sound. This paper outlines how this may be done for certain kinds of dynamic programs. Our techniques allow analysis and optimization techniques that have been developed for static programs to be extended to a large class of "well-behaved" dynamic programs.

AB - Research on flow analysis and optimization of logic programs typically assumes that the programs being analyzed are static, i.e. any code that can be executed at runtime is available for analysis at compile time. This assumption may not hold for "real" programs, which can contain dynamic goals of the form call(X), where X is a variable at compile time, or where predicates may be modified via features like assert and retract. In such contexts, a compiler must be able to take the effects of such dynamic constructs into account in order to perform nontrivial flow analyses that can be guaranteed to be sound. This paper outlines how this may be done for certain kinds of dynamic programs. Our techniques allow analysis and optimization techniques that have been developed for static programs to be extended to a large class of "well-behaved" dynamic programs.

UR - http://www.scopus.com/inward/record.url?scp=0024738270&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0024738270&partnerID=8YFLogxK

U2 - 10.1016/0743-1066(89)90013-7

DO - 10.1016/0743-1066(89)90013-7

M3 - Article

AN - SCOPUS:0024738270

VL - 7

SP - 149

EP - 176

JO - Journal of Logic Programming

JF - Journal of Logic Programming

SN - 1567-8326

IS - 2

ER -