2006
DOI: 10.1007/11680093_8
|View full text |Cite
|
Sign up to set email alerts
|

Non-leftmost Unfolding in Partial Evaluation of Logic Programs with Impure Predicates

Abstract: Partial evaluation of logic programs which contain impure predicates poses non-trivial challenges. Impure predicates include those which produce side-effects, raise errors (or exceptions), and those whose truth value varies according to the degree of instantiation of arguments 4. In particular, non-leftmost unfolding steps can produce incorrect results since the independence of the computation rule no longer holds in the presence of impure predicates. Existing proposals allow non-leftmost unfolding steps, but … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
24
0

Year Published

2006
2006
2009
2009

Publication Types

Select...
3
3
2

Relationship

4
4

Authors

Journals

citations
Cited by 17 publications
(24 citation statements)
references
References 18 publications
(37 reference statements)
0
24
0
Order By: Relevance
“…Also, hom emb aggr and hom emb cons are unfolding rules which are both based on homeomorphic embedding for flagging possible non-termination (see [17] for more details). In both cases, non-leftmost unfolding is performed only when it is guaranteed to be safe (see [1]). However, the first one is more aggressive, whereas the second one is more conservative.…”
Section: Resultsmentioning
confidence: 99%
“…Also, hom emb aggr and hom emb cons are unfolding rules which are both based on homeomorphic embedding for flagging possible non-termination (see [17] for more details). In both cases, non-leftmost unfolding is performed only when it is guaranteed to be safe (see [1]). However, the first one is more aggressive, whereas the second one is more conservative.…”
Section: Resultsmentioning
confidence: 99%
“…Type-based homeomorphic embedding ( T ) [4] has been used both at the local and global control to decide when to stop derivations and when to generalize calls so that effectiveness of the decompilation can be obtained in the presence of integers without compromising termination. The unfolding operator must also be able to accurately handle built-in predicates and to safely perform nonleftmost unfolding steps as in [6]. The operator abstract must incorporate a polyvariance control mechanism [18] which avoids performing useless specializations that can introduce superfluous decompiled code and thus degrade the decompilation effectiveness.…”
Section: The (Non-modular) Lp-decompilation Of P Bc Can Be Obtained Asmentioning
confidence: 99%
“…As mentioned in the introduction, analyzing the strong quasi-termination of programs is essential because liberal selection policies are often mandatory to achieve a good specialization during partial evaluation (see, e.g., [1,25]). …”
Section: From Termination To Quasi-terminationmentioning
confidence: 99%
“…all possible computation rules. This is essential because liberal selection policies are often mandatory to achieve a good specialization (see, e.g., [1,25]). Therefore, we consider strong termination [2]: a program P and query Q strongly terminate if they universally terminate (i.e., the computation of all solutions terminate) w.r.t.…”
Section: Introductionmentioning
confidence: 99%