2006
DOI: 10.1007/978-3-540-69611-7_7
|View full text |Cite
|
Sign up to set email alerts
|

Automatic Incrementalization of Prolog Based Static Analyses

Abstract: Abstract. Modern development environments integrate various static analyses into the build process. Analyses that analyze the whole project whenever the project changes are impractical in this context. We present an approach to automatic incrementalization of analyses that are specified as tabled logic programs and evaluated using incremental tabled evaluation, a technique for efficiently updating memo tables in response to changes in facts and rules. The approach has been implemented and integrated into the E… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
13
0

Year Published

2006
2006
2016
2016

Publication Types

Select...
4
2
1

Relationship

2
5

Authors

Journals

citations
Cited by 26 publications
(13 citation statements)
references
References 35 publications
(47 reference statements)
0
13
0
Order By: Relevance
“…part of(T,flyweightFactory(Instance)), 3 tnot(part of(S,flyweightCreation(Instance))). 4 5 violations(S,T,layering(Instance)) :− 6 part of(T,layer(M,Instance)), 7 tnot(part of(S,layer(N,Instance))), 8 N>=M.…”
Section: Constraints On Dependencies Between Ensemblesmentioning
confidence: 99%
See 2 more Smart Citations
“…part of(T,flyweightFactory(Instance)), 3 tnot(part of(S,flyweightCreation(Instance))). 4 5 violations(S,T,layering(Instance)) :− 6 part of(T,layer(M,Instance)), 7 tnot(part of(S,layer(N,Instance))), 8 N>=M.…”
Section: Constraints On Dependencies Between Ensemblesmentioning
confidence: 99%
“…This constraint is necessary, since given two ensemble specifications S1 and S2, it is not possible to statically decide whether S1 matches a subset of 1 violations(S, T, 'enclosing') :− 2 isEnclosedIn(E, EnclosingEnsemble), 3 part of(S, E), 4 tnot(part of(S, EnclosingEnsemble)). 5 6 violations(S, T, 'outgoing') :− 7 tnot(outPort(E, Port), isOpen(Port)), 8 (depends(E, DependentEnsemble) | E=DependentEnsemble), 9 part of(S, E), tnot(part of(T, DependentEnsemble)). 10 11 violations(S, T, 'incoming') :− 12 tnot(inPort(E, Port), isOpen(Port)), 13 (depends(E, DependentEnsemble) | E=DependentEnsemble), 14 tnot(part of(S, DependentEnsemble)), part of(T, E).…”
Section: Listing 6: Representing Ensemble-dependenciesmentioning
confidence: 99%
See 1 more Smart Citation
“…Eichberg et al [6] use incremental tabled evaluation to update analysis results deduced in a logic language. This approach comes with the cost of having to translate the program graph to Prolog facts and depends on the performance of the underlying general-purpose reasoning engine.…”
Section: Related Workmentioning
confidence: 99%
“…As others have argued before [6,19,20], a large margin of this inefficiency is due to the fact that current data-flow analyses lack a way to respond to incremental program changes.…”
Section: Introductionmentioning
confidence: 99%