Results 1 
3 of
3
Cyclic Lambda Calculi
, 1997
"... . We precisely characterize a class of cyclic lambdagraphs, and then give a sound and complete axiomatization of the terms that represent a given graph. The equational axiom system is an extension of lambda calculus with the letrec construct. In contrast to current theories, which impose restrictio ..."
Abstract

Cited by 44 (5 self)
 Add to MetaCart
. We precisely characterize a class of cyclic lambdagraphs, and then give a sound and complete axiomatization of the terms that represent a given graph. The equational axiom system is an extension of lambda calculus with the letrec construct. In contrast to current theories, which impose restrictions on where the rewriting can take place, our theory is very liberal, e.g., it allows rewriting under lambdaabstractions and on cycles. As shown previously, the reduction theory is nonconfluent. We thus introduce an approximate notion of confluence. Using this notion we define the infinite normal form or L'evyLongo tree of a cyclic term. We show that the infinite normal form defines a congruence on the set of terms. We relate our cyclic lambda calculus to the traditional lambda calculus and to the infinitary lambda calculus. Since most implementations of nonstrict functional languages rely on sharing to avoid repeating computations, we develop a variant of our calculus that enforces the ...
A Common Intermediate Language and its Use in Partitioning Concurrent Declarative Programs
 New Generation Computing
, 1996
"... The plethora of concurrent declarative language families, each with subtly different semantics, makes the design and implementation of static analyses for these languages a demanding task. However, many of the languages share underlying structure, and if this structure can be exploited, static analy ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
The plethora of concurrent declarative language families, each with subtly different semantics, makes the design and implementation of static analyses for these languages a demanding task. However, many of the languages share underlying structure, and if this structure can be exploited, static analysis techniques can be shared across language families. These techniques can thus provide a common kernel for the implementation of quality compilers for this entire language class. The purpose of this paper is to exploit the similarities of nonstrict functional and concurrent logic languages in the design of a common intermediate language (CIL). The CIL is introduced incrementally, giving at each step the rationale for its extension. As an application, we present, in CIL form, some stateoftheart static partitioning algorithms from the literature. This allows us to "uncover" the relative advantages and disadvantages of the analyses, and determine promising directions for improving static ...
Compilation of Concurrent Declarative Languages
 University of Oregon
, 1995
"... The plethora of concurrent declarative language families, each with subtly different semantics, makes the design and implementation of static analyses for these languages a demanding task. However, many of the languages share underlying structure. If this structure can be exploited, static analysis ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
The plethora of concurrent declarative language families, each with subtly different semantics, makes the design and implementation of static analyses for these languages a demanding task. However, many of the languages share underlying structure. If this structure can be exploited, static analysis techniques can be shared across language families. These techniques can thus provide a common kernel for the implementation of quality compilers for this entire language class. The purpose of this paper is to exploit the similarities of nonstrict functional and concurrent logic languages in the design of a common intermediate language (CIL). The CIL is introduced incrementally, giving at each step the rationale for its extension. As an application, we have analyzed some stateofthe art static partitioning algorithms from the literature in terms of their action upon CIL programs. This allowed us to "uncover" the relative advantages and disadvantages of the analyses, and determine promising ...