Results 1  10
of
149
ParameterPassing and the Lambda Calculus
, 1991
"... The choice of a parameterpassing technique is an important decision in the design of a highlevel programming language. To clarify some of the semantic aspects of the decision, we develop, analyze, and compare modifications of the calculus for the most common parameterpassing techniques, i.e., ca ..."
Abstract

Cited by 216 (24 self)
 Add to MetaCart
(Show Context)
The choice of a parameterpassing technique is an important decision in the design of a highlevel programming language. To clarify some of the semantic aspects of the decision, we develop, analyze, and compare modifications of the calculus for the most common parameterpassing techniques, i.e., callbyvalue and callbyname combined with passbyworth and passby reference, respectively. More specifically, for each parameterpassing technique we provide 1. a program rewriting semantics for a language with sideeffects and firstclass procedures based on the respective parameterpassing technique; 2. an equational theory that is derived from the rewriting semantics in a uniform manner; 3. a formal analysis of the correspondence between the calculus and the semantics; and 4. a strong normalization theorem for the imperative fragment of the theory (when applicable). A comparison of the various systems reveals that Algol's callbyname indeed satisfies the wellknown fi rule of the orig...
Confluence properties of Weak and Strong Calculi of Explicit Substitutions
 JOURNAL OF THE ACM
, 1996
"... Categorical combinators [12, 21, 43] and more recently oecalculus [1, 23], have been introduced to provide an explicit treatment of substitutions in the calculus. We reintroduce here the ingredients of these calculi in a selfcontained and stepwise way, with a special emphasis on confluence prope ..."
Abstract

Cited by 135 (7 self)
 Add to MetaCart
Categorical combinators [12, 21, 43] and more recently oecalculus [1, 23], have been introduced to provide an explicit treatment of substitutions in the calculus. We reintroduce here the ingredients of these calculi in a selfcontained and stepwise way, with a special emphasis on confluence properties. The main new results of the paper w.r.t. [12, 21, 1, 23] are the following: 1. We present a confluent weak calculus of substitutions, where no variable clashes can be feared. 2. We solve a conjecture raised in [1]: oecalculus is not confluent (it is confluent on ground terms only). This unfortunate result is "repaired" by presenting a confluent version of oecalculus, named the Envcalculus in [23], called here the confluent oecalculus.
The Geometry of Optimal Lambda Reduction
, 1992
"... Lamping discovered an optimal graphreduction implementation of the calculus. Simultaneously, Girard invented the geometry of interaction, a mathematical foundation for operational semantics. In this paper, we connect and explain the geometry of interaction and Lamping's graphs. The geometry o ..."
Abstract

Cited by 123 (2 self)
 Add to MetaCart
Lamping discovered an optimal graphreduction implementation of the calculus. Simultaneously, Girard invented the geometry of interaction, a mathematical foundation for operational semantics. In this paper, we connect and explain the geometry of interaction and Lamping's graphs. The geometry of interaction provides a suitable semantic basis for explaining and improving Lamping's system. On the other hand, graphs similar to Lamping's provide a concrete representation of the geometry of interaction. Together, they offer a new understanding of computation, as well as ideas for efficient and correct implementations.
Equational term graph rewriting
 Fundamenta Informaticae
, 1996
"... and their applications. SMC is sponsored by the Netherlands Organization for Scientific Research (NWO). CWI is a member of ..."
Abstract

Cited by 79 (7 self)
 Add to MetaCart
and their applications. SMC is sponsored by the Netherlands Organization for Scientific Research (NWO). CWI is a member of
Linear Logic Without Boxes
, 1992
"... Girard's original definition of proof nets for linear logic involves boxes. The box is the unit for erasing and duplicating fragments of proof nets. It imposes synchronization, limits sharing, and impedes a completely local view of computation. Here we describe an implementation of proof nets w ..."
Abstract

Cited by 61 (0 self)
 Add to MetaCart
Girard's original definition of proof nets for linear logic involves boxes. The box is the unit for erasing and duplicating fragments of proof nets. It imposes synchronization, limits sharing, and impedes a completely local view of computation. Here we describe an implementation of proof nets without boxes. Proof nets are translated into graphs of the sort used in optimal calculus implementations; computation is performed by simple graph rewriting. This graph implementation helps in understanding optimal reductions in the calculus and in the various programming languages inspired by linear logic. 1 Beyond the calculus The calculus is not entirely explicit about the operations of erasing and duplicating arguments. These operations are important both in the theory of the  calculus and in its implementations, yet they are typically treated somewhat informally, implicitly. The proof nets of linear logic [1] provide a refinement of the calculus where these operations become explici...
The CallbyNeed Lambda Calculus
 Journal of Functional Programming
, 1994
"... We present a calculus that captures the operational semantics of callbyneed. The callbyneed lambda calculus is confluent, has a notion of standard reduction, and entails the same observational equivalence relation as the callbyname calculus. The system can be formulated with or without explici ..."
Abstract

Cited by 57 (3 self)
 Add to MetaCart
(Show Context)
We present a calculus that captures the operational semantics of callbyneed. The callbyneed lambda calculus is confluent, has a notion of standard reduction, and entails the same observational equivalence relation as the callbyname calculus. The system can be formulated with or without explicit let bindings, admits useful notions of marking and developments, and has a straightforward operational interpretation. Introduction The correspondence between callbyvalue lambda calculi and strict functional languages (such as the pure subset of Standard ML) is quite good; the correspondence between callby name lambda calculi and lazy functional languages (such as Miranda or Haskell) is not so good. Callbyname reevaluates an argument each time it is used, a prohibitive expense. Thus, many lazy languages are implemented using the callbyneed mechanism proposed by Wadsworth (1971), which overwrites an argument with its value the first time it is evaluated, avoiding the need for any s...
A Brief Guide to Linear Logic
, 1993
"... An overview of linear logic is given, including an extensive bibliography and a simple example of the close relationship between linear logic and computation. ..."
Abstract

Cited by 56 (10 self)
 Add to MetaCart
An overview of linear logic is given, including an extensive bibliography and a simple example of the close relationship between linear logic and computation.
Efficient Memory Representation of XML Document Trees
, 2007
"... Implementations that load XML documents and give access to them via, e.g., the DOM, suffer from huge memory demands: the space needed to load an XML document is usually many times larger than the size of the document. A considerable amount of memory is needed to store the tree structure of the XML d ..."
Abstract

Cited by 48 (12 self)
 Add to MetaCart
(Show Context)
Implementations that load XML documents and give access to them via, e.g., the DOM, suffer from huge memory demands: the space needed to load an XML document is usually many times larger than the size of the document. A considerable amount of memory is needed to store the tree structure of the XML document. In this paper, a technique is presented that allows to represent the tree structure of an XML document in an efficient way. The representation exploits the high regularity in XML documents by compressing their tree structure; the latter means to detect and remove repetitions of tree patterns. Formally, contextfree tree grammars that generate only a single tree are used for tree compression. The functionality of basic tree operations, like traversal along edges, is preserved under this compressed representation. This allows to directly execute queries (and in particular, bulk operations) without prior decompression. The complexity of certain computational problems like validation against XML types or testing equality is investigated for compressed input trees.
Interaction Combinators
 Information and Computation
, 1995
"... This paper is the continuation of the author 's work on interaction nets, inspired by Girard's proof nets for linear logic, but no preliminary knowledge of these topics is required for its reading. Introduction ..."
Abstract

Cited by 47 (3 self)
 Add to MetaCart
(Show Context)
This paper is the continuation of the author 's work on interaction nets, inspired by Girard's proof nets for linear logic, but no preliminary knowledge of these topics is required for its reading. Introduction
Applications of Linear Logic to Computation: An Overview
, 1993
"... This paper is an overview of existing applications of Linear Logic (LL) to issues of computation. After a substantial introduction to LL, it discusses the implications of LL to functional programming, logic programming, concurrent and objectoriented programming and some other applications of LL, li ..."
Abstract

Cited by 42 (3 self)
 Add to MetaCart
This paper is an overview of existing applications of Linear Logic (LL) to issues of computation. After a substantial introduction to LL, it discusses the implications of LL to functional programming, logic programming, concurrent and objectoriented programming and some other applications of LL, like semantics of negation in LP, nonmonotonic issues in AI planning, etc. Although the overview covers pretty much the stateoftheart in this area, by necessity many of the works are only mentioned and referenced, but not discussed in any considerable detail. The paper does not presuppose any previous exposition to LL, and is addressed more to computer scientists (probably with a theoretical inclination) than to logicians. The paper contains over 140 references, of which some 80 are about applications of LL. 1 Linear Logic Linear Logic (LL) was introduced in 1987 by Girard [62]. From the very beginning it was recognized as relevant to issues of computation (especially concurrency and stat...