Results 11  20
of
32
SemanticsBased Compiling: A Case Study in TypeDirected Partial Evaluation
 Eighth International Symposium on Programming Language Implementation and Logic Programming
"... . We illustrate a simple and e#ective solution to semanticsbased compiling. Our solution is based on "typedirected partial evaluation", and  our compiler generator is expressed in a few lines, and is e#cient;  its input is a welltyped, purely functional definitional interpreter in the sty ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
. We illustrate a simple and e#ective solution to semanticsbased compiling. Our solution is based on "typedirected partial evaluation", and  our compiler generator is expressed in a few lines, and is e#cient;  its input is a welltyped, purely functional definitional interpreter in the style of denotational semantics;  the output of the generated compiler is e#ectively threeaddress code, in the fashion and e#ciency of the Dragon Book;  the generated compiler processes several hundred lines of source code per second. The source language considered in this case study is imperative, blockstructured, higherorder, callbyvalue, allows subtyping, and obeys stack discipline. It is bigger than what is usually reported in the literature on semanticsbased compiling and partial evaluation. Our compiling technique uses the first Futamura projection, i.e., we compile programs by specializing a definitional interpreter with respect to the program. Specialization is carri...
Objects, Interference, and the Yoneda Embedding
, 1995
"... We present a new semantics for Algollike languages that combines methods from two prior lines of development: ffl the objectbased approach of [21,22], where the meaning of an imperative program is described in terms of sequences of observable actions, and ffl the functorcategory approach initiat ..."
Abstract

Cited by 16 (7 self)
 Add to MetaCart
We present a new semantics for Algollike languages that combines methods from two prior lines of development: ffl the objectbased approach of [21,22], where the meaning of an imperative program is described in terms of sequences of observable actions, and ffl the functorcategory approach initiated by Reynolds [24], where the varying nature of the runtime stack is explained using functors from a category of store shapes to a category of cpos. The semantics
Functor Categories and TwoLevel Languages
 In Foundations of Software Science and Computation Structures (FoSSaCS
, 1998
"... We propose a denotational semantics for the twolevel language of [GJ91, Gom92], and prove its correctness w.r.t. a standard denotational semantics. Other researchers (see [Gom91, GJ91, Gom92, JGS93, HM94]) have claimed correctness for lambdamix (or extensions of it) based on denotational models, b ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
We propose a denotational semantics for the twolevel language of [GJ91, Gom92], and prove its correctness w.r.t. a standard denotational semantics. Other researchers (see [Gom91, GJ91, Gom92, JGS93, HM94]) have claimed correctness for lambdamix (or extensions of it) based on denotational models, but the proofs of such claims rely on imprecise definitions and are basically awed. At a technical level there are two important differences between our model and more naive models in Cpo: the domain for interpreting dynamic expressions is more abstract (we interpret code as terms modulo conversion), the semantics of newname is handled differently (we exploit functor categories). The key idea is to interpret a twolevel language in a suitable functor category Cpo D op rather than Cpo. The semantics of newname follows the ideas pioneered by Oles and Reynolds for modeling the stack discipline of Algollike languages. Indeed, we can think of the objects of D (i.e. the natural numbers) as ...
A Language for BiDirectional Tree Transformations
, 2003
"... We develop a semantic foundation and a core programming language for bidirectional transformations on treestuctured data. In one direction, these transformations, called lenses, map a complex "concrete" tree into a simplified "abstract" one; in the other, they map a modified abstract tree, together ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
We develop a semantic foundation and a core programming language for bidirectional transformations on treestuctured data. In one direction, these transformations, called lenses, map a complex "concrete" tree into a simplified "abstract" one; in the other, they map a modified abstract tree, together with the original concrete tree, to a correspondingly modified concrete tree.
Passivity and independence
 In Proceedings, Ninth Annual IEEE Symposium on Logic in Computer Science
, 1994
"... Most programming languages have certain phrases (like expressions) which only read information from the state and certain others (like commands) which write information to the state. These are called passive and active phrases respectively. Semantic models which make these distinctions have been har ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
Most programming languages have certain phrases (like expressions) which only read information from the state and certain others (like commands) which write information to the state. These are called passive and active phrases respectively. Semantic models which make these distinctions have been hard to find. For instance, most semantic models have expression denotations that (temporarily) change the state. Common reasoning principles, such as the Hoare’s assignment axiom, are not valid in such models. We define here a semantic model which captures the notions of “change”, “absence of change” and “independent change ” etc. This is done by extending the author’s “linear logic model of state ” with dependence/independence relations so that sequential traces give way to pomset traces. 1
Mathematical models of computational and combinatorial structures. Invited address for Foundations
 of Software Science and Computation Structures (FOSSACS 2005
, 2005
"... Abstract. The general aim of this talk is to advocate a combinatorial perspective, together with its methods, in the investigation and study of models of computation structures. This, of course, should be taken in conjunction with the wellestablished views and methods stemming from algebra, category ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
Abstract. The general aim of this talk is to advocate a combinatorial perspective, together with its methods, in the investigation and study of models of computation structures. This, of course, should be taken in conjunction with the wellestablished views and methods stemming from algebra, category theory, domain theory, logic, type theory, etc. In support of this proposal I will show how such an approach leads to interesting connections between various areas of computer science and mathematics; concentrating on one such example in some detail. Specifically, I will consider the line of my research involving denotational models of the pi calculus and algebraic theories with variablebinding operators, indicating how the abstract mathematical structure underlying these models fits with that of Joyal’s combinatorial species of structures. This analysis suggests both the unification and generalisation of models, and in the latter vein I will introduce generalised species of structures and their calculus. These generalised species encompass and generalise various of the notions of species used in combinatorics. Furthermore, they have a rich mathematical structure (akin to models of Girard’s linear logic) that can be described purely within Lawvere’s generalised logic. Indeed, I will present and treat the cartesian closed structure, the linear structure, the differential structure, etc. of generalised species axiomatically in this mathematical framework. As an upshot, I will observe that the setting allows for interpretations of computational calculi (like the lambda calculus, both typed and untyped; the recently introduced differential lambda calculus of Ehrhard and Regnier; etc.) that can be directly seen as translations into a more basic elementary calculus of interacting agents that compute by communicating and operating upon structured data.
Abstract Models of Storage
, 2000
"... This note is a historical survey of Christopher Strachey's influence on the development of semantic models of assignment and storage management in procedural languages. ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
This note is a historical survey of Christopher Strachey's influence on the development of semantic models of assignment and storage management in procedural languages.
Compositional References for Stateful Functional Programming
 In Proceedings of the 2nd ACM SIGPLAN International Conference on Functional Programming (ICFP’97
, 1997
"... We introduce the notion of compositional references into the framework of monadic functional programming and propose a set of new primitives based on this notion. They enable us to use a wide range of mutable data structures. There, references may be passed around explicitly, or mutable data structu ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
We introduce the notion of compositional references into the framework of monadic functional programming and propose a set of new primitives based on this notion. They enable us to use a wide range of mutable data structures. There, references may be passed around explicitly, or mutable data structures such as arrays and tuples may be passed implicitly as hidden state. The former style is called the explicit style and is usually more expressive, while the latter is called the implicit style and has simpler semantics. We investigate the relation between the two styles and discus implementation issues. 1 Introduction Many proposals have been made toward a safe integration of a purely, lazy functional language with inplace updatable state [3, 1, etc.]. In a series of proposals [16, 11], the notion of monads [7] provides a basis for such an integration. Based on monads, Launchbury and Peyton Jones [5] proposed a way to express computations which deal with multiple mutable objects by pr...
Alternative Semantics for Verdi
, 1990
"... this report. Dan Craigen reviewed the report at various stages. iv EVES Project TR90544602 Chapter 1 Introduction A model theory and (parts of) a logic for Verdi are presented in the formal description of Verdi [12], together with a proof of soundness for the logic with respect to the model the ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
this report. Dan Craigen reviewed the report at various stages. iv EVES Project TR90544602 Chapter 1 Introduction A model theory and (parts of) a logic for Verdi are presented in the formal description of Verdi [12], together with a proof of soundness for the logic with respect to the model theory. While this development was useful in validating the proof theory, certain aspects of the model theory are unsatisfactory. In particular, the modeltheoretic semantics is highly abstract; it is unclear exactly how certain parts of Verdi would be implemented. The present work complements the model theory by presenting an alternative definition of the semantics of the executable portion of Verdi, with a proof of correspondence between the new semantics and the old. The new semantic definition is denotational in style [4, 13, 14]. I tried as much as possible, within the other constraints of the project, to adopt the socalled "standard" style of definition. However, I avoided many of the usual typographical and notational conventions, as these were inconsistent with the existing model theory. Since the bulk of this report describes the relationship between the two definitions, notational inconsistencies are both awkward and annoying. Particular conventions avoided include "currying" of the semantic functions, the use of juxtaposition to indicate application, and semantic parentheses surrounding program text. Various aspects of Verdi are explained by the new semantic definition. In particular, there were a number of design considerations that, while significant to any implementor of the language, are not apparent in the model theory. Among these considerations are
A Filter Model for Mobile Processes
 MATH. STRUCT. IN COMP. SCIENCE
, 1993
"... This paper presents a filter model for πcalculus, and shows its full abstraction with respect to a "may" operational semantics. The model is introduced in the form of a type assignment system. Types are related by a preorder which mimics the operational behaviour of terms. A subject expansion th ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
This paper presents a filter model for πcalculus, and shows its full abstraction with respect to a "may" operational semantics. The model is introduced in the form of a type assignment system. Types are related by a preorder which mimics the operational behaviour of terms. A subject expansion theorem holds. Terms are interpreted as filters of types: this interpretation is compositional. The proof of full abstraction relies on a notion of realizability of types, and on the construction of terms, which test when an arbitrary term has a fixed type.