## A Uniform Treatment of Order of Evaluation and Aggregate Update (1993)

Venue: | Theoretical Computer Science |

Citations: | 9 - 0 self |

### BibTeX

@ARTICLE{Draghicescu93auniform,

author = {M. Draghicescu and S. Purushothaman},

title = {A Uniform Treatment of Order of Evaluation and Aggregate Update},

journal = {Theoretical Computer Science},

year = {1993},

volume = {118}

}

### Years of Citing Articles

### OpenURL

### Abstract

The article presents an algorithm for the destructive update optimization in first-order lazy functional languages. The main component of the method is a new static analysis of the order of evaluation of expressions which, compared to other published work, has a much lower complexity and is not restricted to pure lazy evaluation. The other component, which we call reduction to variables, is a method of detecting the variables which denote locations where the result of an expression might be stored. Starting with the operational semantics of the language, we introduce some markers for the values in the basic domain. By appropriately choosing the set of markers M and the method of propagating them during evaluation, we can extract some property of the evaluation in which an expression can participate in by looking at the marker of its value. We define then an equivalent denotational semantics and derive the above analyses, in an uniform way, by abstract interpretation over a subdomain of...

### Citations

536 |
The Implementation of Functional Programming Languages
- JONES, L
- 1987
(Show Context)
Citation Context ...1; 2 + 3) will return a reference to the unique 5 created when its second argument is evaluated. These assumptions are valid, for example, in an execution model based on graph-reduction (Peyton Jones =-=[15]-=-). The purpose of the destructive update analysis is to determine at compile time whether a given expression update(e; : : :) in a given program P can be evaluated, without affecting the meaning of P ... |

474 |
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
- STOY
- 1977
(Show Context)
Citation Context ...on function Eval : Exp ! Env ! D by: Eval(e; ae) = ( d if e ! ae b d ? otherwise: The following theorem states the equivalence between the denotational and operational semantics (for a proof see Stoy =-=[19]-=-). Theorem 2.1 For all e 2 Exp, ae 2 Env , Eval(e; ae) = E [[e]]ae: 2.4 Non-Standard Semantics The standard semantics of L does not contain all the information needed for the analyses which will be pr... |

395 |
LCF considered as a programming language
- PLOTKIN
- 1977
(Show Context)
Citation Context ...ly in an operational manner. The operational semantics presented in this section is a simplified version (adapted to our first order language) of the operational semantics of PCF presented in Plotkin =-=[16]-=-. The only difference is the presence of an environment and the rule (1) which allows the reduction of expressions containing free variables. Note however that the variables are used only at the first... |

92 |
Abstract Interpretation and Optimising Transformations for Applicative Programs
- MYCROFT
- 1981
(Show Context)
Citation Context ...ugh compile-time analysis. The latter approach is the topic of the present work. The destructive update optimization has been considered in the literature before, one of the early works being Mycroft =-=[13]-=-. In Hudak [9] the problem is discussed in an operational model based on graph reduction. An applicative-order language is treated in Hudak [11] using an abstraction of Funded in part by NSF CDA-89-14... |

70 |
S.: Strictness analysis for higher-order functions
- Burn, Hankin, et al.
- 1986
(Show Context)
Citation Context ...er are the order of evaluation analysis and the methodology of basing the analysis on operational semantics. The analyses can be extended to higher-order languages using the methods developed in Burn =-=[6]-=- and Hudak [10]. These methods were originally developed for strictness analysis which is obtained by abstracting the standard semantics, but they can be easily adapted to our non-standard semantics. ... |

56 |
Detecting global variables in denotational specifications. ACM transactions on programming languages and systems
- Schmidt
- 1985
(Show Context)
Citation Context ...al Programming. reference counting (reference counting offers a run-time solution to this optimization problem). A related analysis (detection of single threaded definitions), is presented in Schmidt =-=[17, 18]-=-, also in an applicative-order setting. The problem is also discussed in Bloss [4, 5] as an application of the path analysis (see below); the method thus obtained is very expensive computationally. A ... |

31 |
Update analysis and the efficient implementation of functional aggregates
- Bloss
- 1989
(Show Context)
Citation Context ...is optimization problem). A related analysis (detection of single threaded definitions), is presented in Schmidt [17, 18], also in an applicative-order setting. The problem is also discussed in Bloss =-=[4, 5]-=- as an application of the path analysis (see below); the method thus obtained is very expensive computationally. A variation of path analysis is also used in Gopinath [8] for a language with call-by-v... |

16 |
Path Analysis and the Optimization of Non-strict Functional Languages
- Bloss
- 1989
(Show Context)
Citation Context ...is optimization problem). A related analysis (detection of single threaded definitions), is presented in Schmidt [17, 18], also in an applicative-order setting. The problem is also discussed in Bloss =-=[4, 5]-=- as an application of the path analysis (see below); the method thus obtained is very expensive computationally. A variation of path analysis is also used in Gopinath [8] for a language with call-by-v... |

15 | Code optimization for lazy evaluation
- Bloss, Hudak, et al.
- 1988
(Show Context)
Citation Context ...1 ) complexity of path analysis. The most important application of evaluation-order analysis is to the destructive update problem; other optimizations based on this information are mentioned in Bloss =-=[3, 4]-=-. The article is organized as follows: Section 2 describes the syntax and semantics of the language used for illustration. We define two equivalent semantics: an operational and a denotational one. A ... |

14 |
Variations on strictness analysis
- Bloss, Hudak
- 1986
(Show Context)
Citation Context ...s presented in Neirynck [14]). The evaluation-order analysis is simple in an applicative-order model. The first solution for normal-order languages that use pure lazy evaluation is presented in Hudak =-=[1]-=-. The most general solution to-date is path analysis presented in Bloss and Hudak [2] and Bloss [4]. Unlike these works, our analysis is not restricted to lazy evaluation, but applies to all evaluatio... |

14 |
Analysing strictness by abstract interpretation of continuations
- Hughes
- 1987
(Show Context)
Citation Context ...gives meaning to function names) E : Exp ! Env ! D (gives meaning to expressions) C : Con ! D ! D (gives meaning to constants). We will use the informal method of presenting the semantics from Hughes =-=[12], which co-=-nsists in defining E and F through a set of mutually recursive equations. F corresponds to the "function variable environment" which is expressed as the least fixed point of an operator in a... |

6 | A Compositional Analysis of Evaluation-Order and its Application - Draghicescu, Purushothaman - 1990 |

4 |
The Aggregate Update Problem
- Hudak, Bloss
- 1985
(Show Context)
Citation Context ...e analysis. The latter approach is the topic of the present work. The destructive update optimization has been considered in the literature before, one of the early works being Mycroft [13]. In Hudak =-=[9]-=- the problem is discussed in an operational model based on graph reduction. An applicative-order language is treated in Hudak [11] using an abstraction of Funded in part by NSF CDA-89-14587. A prelimi... |

1 |
A semantic model of reference counting and its
- Hudak
- 1987
(Show Context)
Citation Context ...literature before, one of the early works being Mycroft [13]. In Hudak [9] the problem is discussed in an operational model based on graph reduction. An applicative-order language is treated in Hudak =-=[11]-=- using an abstraction of Funded in part by NSF CDA-89-14587. A preliminary version of this paper appeared in the proceedings of the 1990 ACM conference on Lisp and Functional Programming. reference co... |

1 |
Detecting Stack-Based Environments
- Schmidt
- 1988
(Show Context)
Citation Context ...al Programming. reference counting (reference counting offers a run-time solution to this optimization problem). A related analysis (detection of single threaded definitions), is presented in Schmidt =-=[17, 18]-=-, also in an applicative-order setting. The problem is also discussed in Bloss [4, 5] as an application of the path analysis (see below); the method thus obtained is very expensive computationally. A ... |