1989
DOI: 10.1007/3-540-50820-1_38
|View full text |Cite
|
Sign up to set email alerts
|

Towards a clean amalgamation of logic programs with external procedures

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0
1

Year Published

1992
1992
2008
2008

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 9 publications
(5 citation statements)
references
References 7 publications
0
4
0
1
Order By: Relevance
“…One might have the impression that the deterministic evaluation of functions in the case of residuation is more efficient, but there are examples where residuation has an infinite computation space whereas narrowing has a finite one (see [39] for more details). On the other hand, residuation offers a concurrent evaluation principle with synchronization on logic variables (sometimes also called declarative concurrency [84]) and a conceptually clean method to connect external functions to declarative programs [21] (note that narrowing requires functions to be explicitly defined by rewrite rules). Therefore, it is desirable to integrate both principles in a single framework.…”
Section: Residuationmentioning
confidence: 99%
See 1 more Smart Citation
“…One might have the impression that the deterministic evaluation of functions in the case of residuation is more efficient, but there are examples where residuation has an infinite computation space whereas narrowing has a finite one (see [39] for more details). On the other hand, residuation offers a concurrent evaluation principle with synchronization on logic variables (sometimes also called declarative concurrency [84]) and a conceptually clean method to connect external functions to declarative programs [21] (note that narrowing requires functions to be explicitly defined by rewrite rules). Therefore, it is desirable to integrate both principles in a single framework.…”
Section: Residuationmentioning
confidence: 99%
“…Therefore, residuation is an appropriate model to connect external operations in a conceptually clean way (see also [21]): their semantics can be considered as defined by a possibly infinite set of rules (e.g., see the definition of "+" in Section 2.1) whose behavior is implemented in some other programming language. Usually, external operations can not deal with unevaluated arguments possibly containing logic variables.…”
Section: External Operationsmentioning
confidence: 99%
“…Real world programs contain various calls to primitive operations that are not explicitly defined by rewrite rules, e.g., arithmetic operations on integers or floats, I/O operations etc. Although some of these operations can be conceptually explained with infinite sets of rewrite rules [10], we need a constructive method to deal with such operations at analysis time. Since we only need to approximate the meaning of such operations, we can approximate an n-ary primitive operation f by the following rewrite rule:…”
Section: Primitive Operationsmentioning
confidence: 99%
“…Thus, they can act as passive constraints [2] providing for better constraint solvers than in pure logic programming [22] (e.g., by transforming "generate-and-test" into "test-and-generate"). Conceptually, primitive functions can be considered as defined by an infinite set of rules which provides a declarative reading for such functions [6]. In a similar way, any other external (side-effect free!)…”
Section: A Unified Model For Declarative Programmingmentioning
confidence: 99%