1984
DOI: 10.1145/2993.357241
|View full text |Cite
|
Sign up to set email alerts
|

Annotations to Control Parallelism and Reduction Order in the Distributed Evaluation of Functional Programs

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
13
0

Year Published

1985
1985
1992
1992

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 33 publications
(13 citation statements)
references
References 16 publications
0
13
0
Order By: Relevance
“…(2) Where is an unmapped expression evaluated that appears at the top level of a program? (3) Just what are the precise binding rules for the identifier self ? In particular, self in a function body is evaluated when the function is applied, not when it is created, but what exactly does that mean, especially in the context of curried functions?…”
Section: Denotational Semantics For Pflmentioning
confidence: 99%
See 2 more Smart Citations
“…(2) Where is an unmapped expression evaluated that appears at the top level of a program? (3) Just what are the precise binding rules for the identifier self ? In particular, self in a function body is evaluated when the function is applied, not when it is created, but what exactly does that mean, especially in the context of curried functions?…”
Section: Denotational Semantics For Pflmentioning
confidence: 99%
“…Formally, let G be the functional describing E; i.e., E = f ix G (the precise definition of G is easily derived from the equations defining E given in Section 4.1). Next assume that all expressions in a program are unique, 3 and define G by:…”
Section: Terminationmentioning
confidence: 99%
See 1 more Smart Citation
“…As an operational semantics, pomsets are able to distinguish between call-by-value, call-by-name, callby-need, and call-by-speculation evaluation strategies (even though all but the first of these have the same standard semantics), including the subtle distinction between "lazy evaluation" and "fully lazy evaluation" (which are refiined versions of call-by-need). Furthermore, as a "handle" from which to control operational behavior, pomsets allow us to express most of the behaviors achieved by previously proposed annotations that control not only evaluation order [1,8,14], but also the spatial mapping of program to machine [5,8,12]. In addition, we have used pomset-based annotations to express several other non-trivial operational behaviors, including the routing of data through a multiprocessor network (dually, the path taken in accessing a value), and the synchronized, lock-step execution of two (unrelated) recursive function calls.…”
Section: Introductionmentioning
confidence: 99%
“…For example, the sequence DT.Ds.D2.R2.Rs.R~ represents the evaluation of x in the first call to f, and DT'Ds.D15"D9.Rg.R15.Rs.R7 represents the evaluation of x in each of the remaining (recuxsive) calls to f. Whereas x's evaluation is only delayed one level upon each call to f, y's evaluation is delayed until the recursion reaches its deepest level, at which point it "unwinds" and "reaches back" to every level above it, performing a additions of 1 We feel that these important yet subtle differences between call-by-value and call-by-need evaluation are made acutely apparent through the use of pomset semantics. where we consider the definitions of f and g to be substituted directly into the result expression (g 10(f a)).…”
mentioning
confidence: 99%