Results 11  20
of
26
Names, Equations, Relations: Practical Ways to Reason about new
, 1996
"... The nucalculus of Pitts and Stark is a typed lambdacalculus, extended with state in the form of dynamicallygenerated names. These names can be created locally, passed around, and compared with one another. Through the interaction between names and functions, the language can capture notions of sc ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
The nucalculus of Pitts and Stark is a typed lambdacalculus, extended with state in the form of dynamicallygenerated names. These names can be created locally, passed around, and compared with one another. Through the interaction between names and functions, the language can capture notions of scope, visibility and sharing. Originally motivated by the study of references in Standard ML, the nucalculus has connections to other kinds of local declaration, and to the mobile processes of the πcalculus. This
A First Order Logic of Effects
 Theoretical Computer Science
, 1996
"... In this paper we describe some of our progress towards an operational implementation of a modern programming logic. The logic is inspired by the variable type systems of Feferman, and is designed for reasoning about imperative functional programs. The logic goes well beyond traditional programming l ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
In this paper we describe some of our progress towards an operational implementation of a modern programming logic. The logic is inspired by the variable type systems of Feferman, and is designed for reasoning about imperative functional programs. The logic goes well beyond traditional programming logics, such as Hoare's logic and Dynamic logic in its expressibility, yet is less problematic to encode into higher order logics. The main focus of the paper is too present an axiomatization of the base first order theory. 1 Introduction VTLoE [34, 23, 35, 37, 24] is a logic for reasoning about imperative functional programs, inspired by the variable type systems of Feferman. These systems are two sorted theories of operations and classes initially developed for the formalization of constructive mathematics [12, 13] and later applied to the study of purely functional languages [14, 15]. VTLoE builds upon recent advances in the semantics of languages with effects [16, 19, 28, 32, 33] and go...
A Categorical Interpretation of Landin's Correspondence Principle
 Proceedings of the 9th Conference on Mathematical Foundations of Programming Semantics, number 802 in Lecture Notes in Computer Science
, 1993
"... Many programming languages can be studied by desugaring them into an intermediate language, namely, the simplytyped  calculus. In this manner Landin and Tennent discovered a "correspondence" between the semantics of definition bindings and parameter bindings such that the semantics of fr ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
Many programming languages can be studied by desugaring them into an intermediate language, namely, the simplytyped  calculus. In this manner Landin and Tennent discovered a "correspondence" between the semantics of definition bindings and parameter bindings such that the semantics of free identifiers becomes independent of their mode of definition. In this paper we consider programming languages with modules and we desugar modules into records. A categorical model for the simplytyped  calculus with records is then freely generated. The record construction becomes a tensor product, the lambda abstraction construction becomes a function space, and if the language satisfies the correspondence principle, then the categorical exponentiation diagram commutes. A converse result is also proved. The framework for defining the model is of interest because it defines a hierarchy of callbyvalue calculi, of which callbyname is the weakest form of callbyvalue calculus. Applications to c...
Bisimilarity for the region calculus
 HigherOrder and Symbolic Computation
"... Abstract. A region calculus is a programming language calculus with explicit instrumentation for memory management. Every value is annotated with a region in which it is stored and regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. A region calculus is a programming language calculus with explicit instrumentation for memory management. Every value is annotated with a region in which it is stored and regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and effect system, making a region calculus suitable as an intermediate language for a compiler of statically typed programming languages. Although a lot of attention has been paid to type soundness properties of different flavors of region calculi, it seems that little effort has been made to develop a semantic framework. In this paper, we present a theory based on bisimulation, which serves as a coinductive proof principle for showing equivalences of polymorphically regionannotated terms. Our notion of bisimilarity is reminiscent of open bisimilarity for the πcalculus and we prove it sound and complete with respect to Morrisstyle contextual equivalence. As an application, we formulate a syntactic equational theory, which is used elsewhere to prove the soundness of a specializer based on region inference. We use our bisimulation framework to show that the equational theory is sound with respect to contextual equivalence.
Reasoning with Actions
 Dept. of Computer Science, Univ. of Aarhus
"... Action semantics is a semantic description framework with very good pragmatic properties but a rather weak theory for reasoning about programs. A strong action theory would be of great practical use, however. It would make it possible to reason about the large class of programming languages that can ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
Action semantics is a semantic description framework with very good pragmatic properties but a rather weak theory for reasoning about programs. A strong action theory would be of great practical use, however. It would make it possible to reason about the large class of programming languages that can be described in action semantics. This paper develops the foundations for a richer action theory, by bringing together concepts and techniques from testing theory for processes and from work on operational reasoning about functional programs. Semantic preorders and equivalences in the action semantics setting are studied and a useful operational technique for establishing testing equivalences is presented. 1 Introduction In this paper we develop a richer theory for reasoning about programs in action semantics (AS). Because AS is a general semantic description framework, our work has a great practical scope. A strong action theory would offer techniques for reasoning about programs in any p...
An Equational Theory for a Region Calculus
, 2002
"... A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every value is annotated with a region in which it is stored. Regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and eect syst ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
A region calculus is a polymorphically typed lambda calculus with explicit memory management primitives. Every value is annotated with a region in which it is stored. Regions are allocated and deallocated in a stacklike fashion. The annotations can be statically inferred by a type and eect system, making a region calculus suitable as an intermediate language for a compiler of statically typed programming languages.
A semantic construction of twoary integers
, 2004
"... Abstract. To binary trees, twoary integers are what usual integers are to natural numbers, seen as unary trees. We can represent twoary integers as binary trees too, yet with leaves labelled by binary words and with a structural restriction. In a sense, they are simpler than the binary trees, they ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Abstract. To binary trees, twoary integers are what usual integers are to natural numbers, seen as unary trees. We can represent twoary integers as binary trees too, yet with leaves labelled by binary words and with a structural restriction. In a sense, they are simpler than the binary trees, they relativize. Hence, contrary to the extensions known from Arithmetic and Algebra, this integer extension does not make the starting objects more complex. We use a semantic construction to get this extension. This method differs from the algebraic ones, mainly because it is able to find equational features of the extended objects. Twoary integers turn out to form the free algebra corresponding to the Jónsson–Tarski’s “paradoxical ” equations. This entails that they have a sum extending the usual sum as well as other operations of higher “dimensions”. In Programming, we use usual integers as address jumps for a direct access usual (“unary”) memory. Such a memory differs from the (virtual) memory of LISP programming language which is both binary and sequential (to reach a location we need to pass through intermediate locations). Even unary memories can be sequential (the tape of a Turing machine), yet we know that a direct access one works better. This carries over to the binary case: twoary integers can provide LISP memories with convenient direct access jumps and the above low complexity hints at feasible hardware implementations.