Results 1 
4 of
4
Stoltze: Efficient Distributed Memory Implementation of a Data Parallel Functional Language
 in Proceedings of PARLE 94, LNCS 817
, 1994
"... ..."
A Uniform Treatment of Order of Evaluation and Aggregate Update
 Theoretical Computer Science
, 1993
"... The article presents an algorithm for the destructive update optimization in firstorder 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 rest ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
(Show Context)
The article presents an algorithm for the destructive update optimization in firstorder 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...
On Copy Avoidance in Single Assignment Languages
 Proceedings of the Tenth International Conference on Logic Programming
, 1993
"... : Copy avoidance refers to the safe replacement, at compile time, of copying operations by destructive updates in singleassignment languages. Conceptually, the problem can be divided into two components: identifying memory cells that can safely be reused at a program point via destructive updating; ..."
Abstract
 Add to MetaCart
: Copy avoidance refers to the safe replacement, at compile time, of copying operations by destructive updates in singleassignment languages. Conceptually, the problem can be divided into two components: identifying memory cells that can safely be reused at a program point via destructive updating; and deciding how to actually reuse such cells. Most of the work on this problem, to date, has focused on the first component, typically via dataflow analyses to detect when memory cells become dead and may be safely reused. In this paper, we examine the second component of the problem. We give an abstract formulation of the memory reuse problem, show that optimal reuse is NPcomplete in general, and give an efficient polynomialtime approximation algorithm based on graphmatching techniques that produces optimal solutions for most commonly encountered cases of memory reuse. 1 Introduction Single assignment languages, such as pure functional and logic programming languages, do not have any...