Results 1 
7 of
7
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
Determining Storage Properties of Sequential and Concurrent Programs with Assignment and Structured Data
 In International Static Analysis Symposium
, 1995
"... . Determination of storage properties (e.g., aliasing, defuse chains, liveness, etc.) is one of the primary concerns in the implementation of any programming language. We present a new semantic framework and analysis basedon operational traces that subsumes and improves upon most existing work in t ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
. Determination of storage properties (e.g., aliasing, defuse chains, liveness, etc.) is one of the primary concerns in the implementation of any programming language. We present a new semantic framework and analysis basedon operational traces that subsumes and improves upon most existing work in this area and handles concurrency, higherorder functions, firstclass continuations, assignment, and recursive structured data. The analysis determines a storage relation: b ; a a : x:w means that in any evaluation segment starting from program point a, the single unit of data allocated at point b is referenced by subcomponent w of variable x after evaluation proceedsthrough control path a, where b is either a control path representing the point of an allocation that occurred after point a, or a symbolic term x 0 :w 0 representing an allocation before point a and referenced by component w 0 of variable x 0 at a. This relation can relate recursive control structure (including pro...
Imperative Lambda Calculus Revisited
, 1997
"... Imperative Lambda Calculus is a type system designed to combine functional and imperative programming features in an orthogonal fashion without compromising the algebraic properties of functions. It has been noted that the original system is too restrictive and lacks the subject reduction property. ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Imperative Lambda Calculus is a type system designed to combine functional and imperative programming features in an orthogonal fashion without compromising the algebraic properties of functions. It has been noted that the original system is too restrictive and lacks the subject reduction property. We define a revised type system that solves these problems using ideas from Reynolds's Syntactic Control of Interference. We also extend it to handle HindleyMilner style polymorphism and devise type reconstruction algorithms. A sophisticated constraint language is designed to formulate principal types for terms. 1 Introduction The recent research in programming languages has greatly clarified the interaction between imperative and functional programming. The conventional notion that functional programming and imperative statemanipulation are in conflict has been dispelled. Several programming languages have now been designed which combine functions and assignments without destroying algeb...
Type reconstruction for SCI
 Functional Programming, Glasgow 1995, Electronic Workshops in Computing
, 1996
"... We present atype reconstruction algorithm for SCIR [10], atype system for a language with syntactic control of interference. SCIR guarantees that terms of passive type do not cause any side e ects, and that distinct identi ers do not interfere. A reconstruction algorithm for this type system must de ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We present atype reconstruction algorithm for SCIR [10], atype system for a language with syntactic control of interference. SCIR guarantees that terms of passive type do not cause any side e ects, and that distinct identi ers do not interfere. A reconstruction algorithm for this type system must deal with di erent kinds (passive and general) and di erent uses of identi ers (passive and active). In particular, there may not be a unique choice of kinds for type variables. Our work extends SCIR typings with kind constraints. We show that principal type schemes exist for this extended system and outline an algorithm for computing them. 1
A linear logic model of state (extended abstract
, 1993
"... We propose an abstract formal model of state manipulation in the framework of Girard’s linear logic. Two issues motivate this work: how to describe the semantics of higherorder imperative programming langauges and how to incorporate state manipulation in functional programming languages. The centra ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We propose an abstract formal model of state manipulation in the framework of Girard’s linear logic. Two issues motivate this work: how to describe the semantics of higherorder imperative programming langauges and how to incorporate state manipulation in functional programming languages. The central idea is that a state is linear and “regenerative”, where the latter is the property of a value that generates a new value upon each use. Based on this, we define a type constructor for states and a “modality ” type constructor for regenerative values. Just as Girard’s “of course ” modality allows him to express static values and intuitionistic logic within the framework of linear logic, our regenerative modality allows us to express dynamic values and imperative programs within the same framework. We demonstrate the expressiveness of the model by showing that a higherorder Algollike language can be embedded in it. 1
Combining Type Disciplines
 Annals of Pure and Applied Logic
, 1994
"... We present a type inference system for pure calculus which includes, in addition to arrow types, also universal and existential type quantifiers, intersection and union types, and type recursion. The interest of this system lies in the fact that it offers a possibility to study in a unified frame ..."
Abstract
 Add to MetaCart
We present a type inference system for pure calculus which includes, in addition to arrow types, also universal and existential type quantifiers, intersection and union types, and type recursion. The interest of this system lies in the fact that it offers a possibility to study in a unified framework a wide range of type constructors. We investigate the main syntactical properties of the system, including an analysis of the preservation of types under parallel reduction strategies, leading to a form of the subjectreduction property. We describe a model for this system where types are special subsets of a D1 model for calculus, without imposing any formal contractiveness constraint on types of the kind considered for a closely related system in MacQueen, Plotkin and Sethi [17].
Applicative Notions in MLlike Programs
, 1998
"... Pure functional languages are expressive tools for writing modular and reliable code. State in programming languages is a useful tool for programming dynamic systems. However, their combination yields programming languages that are difficult to model and to reason about. There have been ongoing atte ..."
Abstract
 Add to MetaCart
Pure functional languages are expressive tools for writing modular and reliable code. State in programming languages is a useful tool for programming dynamic systems. However, their combination yields programming languages that are difficult to model and to reason about. There have been ongoing attempts to find subsets of the whole languages which have good properties; in particular subsets where the programs are more modular and the side effects are controlled. The existing studies are: interference control, typing with sideeffects information, and linear logic based languages. This thesis presents a new classification for a paradigm called constant program throughout a computational invariant. A program is called constant throughout an invariant R if its inputoutput behaviour is constant over any variations of state that satisfy the invariant R. Hence such a program behaves in an applicative way when it is executed in a context that satisfies the invariant R. The language of discussion is a pure ML fragment augmented with ref,:=, and!. Programs with side effects are modelled in terms of sets, functions, and the