Results 1 - 10
of
10
A Calculus of Mobile Processes, Part I
- I AND II. INFORMATION AND COMPUTATION
, 1989
"... We present the ß-calculus, a calculus of communicating systems in which one can naturally express processes which have changing structure. Not only may the component agents of a system be arbitrarily linked, but a communication between neighbours may carry information which changes that linkage. The ..."
Abstract
-
Cited by 172 (3 self)
- Add to MetaCart
We present the ß-calculus, a calculus of communicating systems in which one can naturally express processes which have changing structure. Not only may the component agents of a system be arbitrarily linked, but a communication between neighbours may carry information which changes that linkage. The calculus is an extension of the process algebra CCS, following work by Engberg and Nielsen who added mobility to CCS while preserving its algebraic properties. The ß-calculus gains simplicity by removing all distinction between variables and constants; communication links are identified by names, and computation is represented purely as the communication of names across links. After an illustrated description of how the ß-calculus generalises conventional process algebras in treating mobility, several examples exploiting mobility are given in some detail. The important examples are the encoding into the ß- calculus of higher-order functions (the -calculus and combinatory algebra), the tr...
On the Expressive Power of Programming Languages
- Science of Computer Programming
, 1990
"... The literature on programming languages contains an abundance of informal claims on the relative expressive power of programming languages, but there is no framework for formalizing such statements nor for deriving interesting consequences. As a first step in this direction, we develop a formal noti ..."
Abstract
-
Cited by 116 (4 self)
- Add to MetaCart
The literature on programming languages contains an abundance of informal claims on the relative expressive power of programming languages, but there is no framework for formalizing such statements nor for deriving interesting consequences. As a first step in this direction, we develop a formal notion of expressiveness and investigate its properties. To validate the theory, we analyze some widely held beliefs about the expressive power of several extensions of functional languages. Based on these results, we believe that our system correctly captures many of the informal ideas on expressiveness, and that it constitutes a foundation for further research in this direction. 1 Comparing Programming Languages The literature on programming languages contains an abundance of informal claims on the expressive power of programming languages. Arguments in these contexts typically assert the expressibility or non-expressibility of programming constructs relative to a language. Unfortunately, pro...
The Evaluation Transformer Model of Reduction and Its Correctness
- in TAPSOFT 91
, 1991
"... Lazy evaluation of functional programs incurs time and memory overheads, and restricts parallelism compared with programs that are evaluated strictly. A number of analysis techniques, such as abstract interpretation and projection analysis, have been developed to find out information that can allevi ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
Lazy evaluation of functional programs incurs time and memory overheads, and restricts parallelism compared with programs that are evaluated strictly. A number of analysis techniques, such as abstract interpretation and projection analysis, have been developed to find out information that can alleviate these overheads. This paper formalises an evaluation model, the evaluation transformer model of reduction, which can use information from these analysis techniques, and proves that the resulting reduction strategies produce the same answers as those obtained using lazy evaluation.
Partial computations in constructive type theory
- JOURNAL OF LOGIC AND COMPUTATION
, 1991
"... Constructive type theory as conceived by Per Martin-Löf has a very rich type system, but partial functions cannot be typed. This also makes it impossible to directly write recursive programs. In this paper a constructive type theory Red is defined which includes a partial type constructor A; objects ..."
Abstract
-
Cited by 7 (5 self)
- Add to MetaCart
Constructive type theory as conceived by Per Martin-Löf has a very rich type system, but partial functions cannot be typed. This also makes it impossible to directly write recursive programs. In this paper a constructive type theory Red is defined which includes a partial type constructor A; objects in the type A may diverge, but if they converge, they must be members of A. A fixed point typing principle is given to allow typing of recursive functions. The extraction paradigm of type theory, whereby programs are automatically extracted from constructive proofs, is extended to allow extraction of fixed points. There is a Scott fixed point induction principle for reasoning about these functions. Soundness of the theory is proven. Type theory becomes a more expressive programming logic as a result.
The Call-by-Need Lambda Calculus (Unabridged)
, 1994
"... We present a calculus that captures the operational semantics of call-by-need. We demonstrate that the calculus is confluent and standardizable and entails the same observational equivalences as call-by-name lambda calculus. 1 Introduction Procedure calls come in three styles: call-by-value, call-b ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
We present a calculus that captures the operational semantics of call-by-need. We demonstrate that the calculus is confluent and standardizable and entails the same observational equivalences as call-by-name lambda calculus. 1 Introduction Procedure calls come in three styles: call-by-value, call-by-name and call-by-need. The first two of these possess elegant models in the form of corresponding lambda calculi. This paper shows that the third may be equipped with a similar model. The correspondence between call-by-value lambda calculi and strict functional languages (such as the pure subset of Standard ML) is quite good. The call-by-value mechanism of evaluating an argument in advance is well suited for practical use. The correspondence between call-by-name lambda calculi and lazy functional languages (such as Miranda or Haskell) is not so good. Call-by-name re-evaluates an argument each time it is used, which is prohibitively expensive. So lazy languages are implemented using the cal...
Lazy Lambda Calculus: Theories, Models and Local Structure Characterisation
- AUTOMATA, LANGUAGES AND PROGRAMMING, LNCS 623
, 1994
"... Lambda Calculus is commonly thought to be the basis for functional programming. However, there is a fundamental mismatch between the "standard" theory of sensible Lambda Calculus (as in e.g. [Bar84]) and the practice of lazy evaluation which is a distinctive feature of functional programming. This ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Lambda Calculus is commonly thought to be the basis for functional programming. However, there is a fundamental mismatch between the "standard" theory of sensible Lambda Calculus (as in e.g. [Bar84]) and the practice of lazy evaluation which is a distinctive feature of functional programming. This paper proposes modification of a number of key notions in the sensible theory along the lines of laziness. Starting from the strongly unsolvables as the meaningless terms, we define and investigate properties of lazy (or weakly sensible) λ-theories, lazy λ-models and a number of lazy behavioural preorders on λ-terms. In the second part, we show that all these notions have a natural place in a class of lazy pse-models. A major result of this paper is a new local structure theorem for lazy pse-models. This characterizes the ordering between denotations of λ-terms in the model by a new lazy behavioural preorder.
LCF Should Be Lifted
, 1988
"... : When observing termination of closed terms at all types in Plotkin's interpreter for PCF [11], the standard cpo model A V is not adequate. We define a new model, A Y , with lifted functional types and prove its adequacy for this notion of observation. We prove that with the addition of a parallel ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
: When observing termination of closed terms at all types in Plotkin's interpreter for PCF [11], the standard cpo model A V is not adequate. We define a new model, A Y , with lifted functional types and prove its adequacy for this notion of observation. We prove that with the addition of a parallel conditional and a convergence testing operator to the language, the model becomes fully abstract; with the addition of an existential-like operator, the language becomes universal. Using the model as a guide, we develop a sound logic for the language. 1 Introduction The denotational semantics most appropriate for a programming language depends crucially upon the observations one makes about computations. In general, an observation is some important behavior of the interpreter [8]. For example, in the arithmetic, higher-order programming language PCF [11, 13], one usually chooses to observe the results of arithmetic expressions---that a term of integer type reduces to a numeral. One may also...
Mobility in the Cc-Paradigm
, 1992
"... presented at Mathematical Foundations of Computer Science 1992, LNCS 629, pp. 336--345, 1992. 1 operation takes a constraint c and adds (conjoins) it to the store (when the store is consistent with c). As a consequence, variables can be linked once and for all to their value, that is cc-languages ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
presented at Mathematical Foundations of Computer Science 1992, LNCS 629, pp. 336--345, 1992. 1 operation takes a constraint c and adds (conjoins) it to the store (when the store is consistent with c). As a consequence, variables can be linked once and for all to their value, that is cc-languages are not affected by the previous criticism against process algebras. However, if cc-languages have higher order power or how much of control is described by them (i.e., a comparison with the descriptive power of process algebras) are still open questions. Some phenomena, indeed, suggest a deep relationship between -calculus and cc-languages: as an example, mobility of channels is reflected in mobility of variables (giving rise to situations of extrusion and intrusion of the scope). In this paper we will prove that cc-languages yield higher order power even with a very poor underlying system of constraints (the signature through which constraints are defined has a constant and a concatenatio...
Semantic Orthogonality of Type Disciplines
, 1997
"... We consider a version of PCF, and prove, using both syntactic and semantic means, that the operational equivalences of the base language are preserved when the language is extended with sum and product types, with polymorphic types, and with recursive types. These theorems show that the additions to ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We consider a version of PCF, and prove, using both syntactic and semantic means, that the operational equivalences of the base language are preserved when the language is extended with sum and product types, with polymorphic types, and with recursive types. These theorems show that the additions to the type systems are orthogonal to the original language. 1 Introduction Type systems for programming languages are rarely monolithic: although a type system may be composed of many parts, each part can usually be understood on its own. Consider, for instance, the programming language Standard ML (SML) [22]. SML's type system includes base types of integers, reals, strings, and characters, and type constructors for lists, functions, tuples, references, exceptions, user-defined recursive datatypes, and polymorphism. On a syntactic level, the type rules of the parts do not interfere with one another: the type-checking rule for application, for example, uses only the fact that the operator is...
Non-deterministic Lazy it λ-calculus VS it π-calculus
- ECOLE NORMALE SUPERIEURE
, 1993
"... We pursue the study of the embedding of the λ-calculus into the π-calculus. Various λ calculi with parallel and convergence testing facilities are examined and their expressiveness compared; λj -a lazy calculus augmented with a non-deterministic choice operator and a convergence testing combinator, ..."
Abstract
- Add to MetaCart
We pursue the study of the embedding of the λ-calculus into the π-calculus. Various λ calculi with parallel and convergence testing facilities are examined and their expressiveness compared; λj -a lazy calculus augmented with a non-deterministic choice operator and a convergence testing combinator, emerges as a suitable language to be encoded in π. Through the use of closures for variables and abstractions, the process of substitution in λj is managed in a semi-explicit way. The semantics associated to both λj and are based on contextual testing preorders. We define an encoding of λj into π; we prove that it is adequate with respect to those semantics. However, the encoding is not fully-adequate; standard examples show that π is still more discriminating than λj .

