Results 1 -
4 of
4
The Design, Implementation and Evaluation of Jade, a Portable, Implicitly Parallel Programming Language
- Dept. of Computer Science, Stanford Univ
, 1994
"... ii ..."
Shallow Binding Makes Functional Arrays Fast
- ACM SIGPLAN notices
, 1991
"... this paper is the first to make the connection with the literature on variable-binding environments. ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
this paper is the first to make the connection with the literature on variable-binding environments.
How to Make Destructive Updates Less Destructive
- IN PROC. 18TH ACM SYMP. ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 1991
"... We present a safe embedding of mutable data structures in functional languages. With safety we mean that confluence and (in some sense) referential transparency are maintained. We develop a static criterion based on abstract interpretation which checks that any side-effect which a function may exert ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
We present a safe embedding of mutable data structures in functional languages. With safety we mean that confluence and (in some sense) referential transparency are maintained. We develop a static criterion based on abstract interpretation which checks that any side-effect which a function may exert via a destructive update remains invisible. The technique opens up the possibility of designing safe and efficient wide-spectrum languages which combine functional and imperative language constructs.
Software---Practice And Experience, Vol. 23(11), 1175--1200 (november 1993)
"... This paper describes an optimizing compiler system that solves the key problem of aggregate copy elimination. The methods developed rely exclusively on compile-time algorithms, including interprocedural analysis, that are applied to an intermediate data flow representation. By dividing the problem i ..."
Abstract
- Add to MetaCart
This paper describes an optimizing compiler system that solves the key problem of aggregate copy elimination. The methods developed rely exclusively on compile-time algorithms, including interprocedural analysis, that are applied to an intermediate data flow representation. By dividing the problem into update-in-place and build-in-place analysis, a small set of relatively simple techniques---edge substitution, graph pattern matching, substructure sharing and substructure targeting---was found to be very powerful. If combined properly and implemented carefully, the algorithms eliminate unnecessary copy operations to a very high degree. No runtime overhead is imposed on the compiled programs

