## References, Local Variables and Operational Reasoning (1992)

Venue: | In Seventh Annual Symposium on Logic in Computer Science |

Citations: | 30 - 4 self |

### BibTeX

@INPROCEEDINGS{Mason92references,local,

author = {Ian A. Mason and Carolyn L. Talcott},

title = {References, Local Variables and Operational Reasoning},

booktitle = {In Seventh Annual Symposium on Logic in Computer Science},

year = {1992},

pages = {186--197},

publisher = {IEEE Computer Society Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

this paper we regard the following as synonyms: references, program variables, pointers, locations, and unary cells) to a programming language complicates life. Adding them to the simply typed lambda calculus causes the failure of most of the nice mathematical properties and some of the more basic rules (such as j). For example strong normalization fails since it is possible, for each provably non--empty function type, to construct a Y --combinator for that type. References also interact unpleasantly with polymorphism [34, 35]. They are also troublesome from a denotational point of view as illustrated by the lack of fully abstract models. For example, in [22] Meyer and Sieber give a series of examples of programs that are operationally equivalent (according to the intended semantics of block-structured Algol-like programs) but which are not given equivalent denotations in traditional denotational semantics. They propose various modifications to the denotational semantics which solve some of these discrepancies, but not all. In [27, 26] a denotational semantics that overcomes some of these problems is presented. However variations on the seventh example remain problematic. Since numerous proof systems for Algol are sound for the denotational models in question, [8, 7, 32, 28, 16, 27, 26], these equivalences, if expressible, must be independent of these systems. The problem which motivated Meyer and Sieber's paper, [22], was to provide mathematical justification for the informal but convincing proofs of the operational equivalence of their examples. In this paper we approach the same problem, but from an operational rather than denotational perspective. This paper accomplishes two goals. Firstly, we present the first-order part of a new logic for reasoning about programs....

### Citations

1619 | The De of Standard ML
- Milner, Tofte, et al.
- 1990
(Show Context)
Citation Context ...The Operational Framework Following the Algol tradition, [2, 31, 8, 7, 29] Meyer and Sieber regard the true syntax of Algol like languages as the simply typed lambda calculus with references 'a la ML =-=[1, 23]-=- (!, := and ref). Mixing this with an earlier tradition, [10, 11, 12], we translate Algol into the untyped lambda calculus with (untyped) references (get, set and mk). 2.1 Terms The syntax of the term... |

564 | A syntactic approach to type soundness
- Wright, Felleisen
- 1994
(Show Context)
Citation Context ...onstruction of inductively defined sets and derivation of the corresponding induction principles. Classes can be used to express simple and polymorphic types as well as the non-expansiveness of terms =-=[34, 35, 6, 13]-=-. This as well as other forms of effect analysis [14, 15, 9] can be carried out within the system. The ability to express effects as well as functionality allows us to give a simple semantics for type... |

455 | Computational lambda-calculus and monads
- Moggi
- 1989
(Show Context)
Citation Context ...]]): Theorem (ciu): e 0 �� = e 1 , e 0 �� = ciu e 1 The proof of (ciu) appears in [18]. Using this theorem we can easily establish, for example, the validity of the let-rules of the lambda-c c=-=alculus [24]. Corollary -=-(let c ): (i) e fx:=vg �� = letfx := vge (ii) e �� = letfx := egx (iii) R[[letfx := e 0 ge 1 ]] �� = letfx := e 0 gR[[e 1 ]] for x not free in R 3 Formulas An immediate use of (ciu) is to ... |

347 |
The mechanical evaluation of expressions
- Landin
- 1963
(Show Context)
Citation Context ... 8, 7, 29] Meyer and Sieber regard the true syntax of Algol like languages as the simply typed lambda calculus with references 'a la ML [1, 23] (!, := and ref). Mixing this with an earlier tradition, =-=[10, 11, 12]-=-, we translate Algol into the untyped lambda calculus with (untyped) references (get, set and mk). 2.1 Terms The syntax of the terms our language is a simple extension of that of the lambda calculus t... |

251 | Polymorphic effect systems
- Lucassen, Gifford
- 1988
(Show Context)
Citation Context ...rresponding induction principles. Classes can be used to express simple and polymorphic types as well as the non-expansiveness of terms [34, 35, 6, 13]. This as well as other forms of effect analysis =-=[14, 15, 9]-=- can be carried out within the system. The ability to express effects as well as functionality allows us to give a simple semantics for type assertions such as those found in the ML type system. This ... |

194 |
The Next 700 Programming Languages
- Landin
- 1966
(Show Context)
Citation Context ... 8, 7, 29] Meyer and Sieber regard the true syntax of Algol like languages as the simply typed lambda calculus with references 'a la ML [1, 23] (!, := and ref). Mixing this with an earlier tradition, =-=[10, 11, 12]-=-, we translate Algol into the untyped lambda calculus with (untyped) references (get, set and mk). 2.1 Terms The syntax of the terms our language is a simple extension of that of the lambda calculus t... |

135 |
A correspondence between ALGOL 60 and Church’s lambda-notation: Part II
- Landin
- 1965
(Show Context)
Citation Context ... 8, 7, 29] Meyer and Sieber regard the true syntax of Algol like languages as the simply typed lambda calculus with references 'a la ML [1, 23] (!, := and ref). Mixing this with an earlier tradition, =-=[10, 11, 12]-=-, we translate Algol into the untyped lambda calculus with (untyped) references (get, set and mk). 2.1 Terms The syntax of the terms our language is a simple extension of that of the lambda calculus t... |

134 |
Lambda Calculus Models of Programming Languages
- Morris
- 1968
(Show Context)
Citation Context ...ionally equivalent, written e 0 �� = e 1 , if for any closing context C, C[[e 0 ]] is defined iff C[[e 1 ]] is defined. This definition extends the extensional equivalence relations defined by Mor=-=ris [25]-=- and Plotkin [30] to computation over memory structures. In general it is very difficult to establish the operational equivalence of expressions. Thus it is desirable to have a simpler characterizatio... |

113 | Equivalence in functional languages with effects
- Mason, Talcott
- 1991
(Show Context)
Citation Context ...r examples. The semantics of the programs we consider is given by a reduction relation on syntactic entities. This approach allows us to establish a useful characterization of operational equivalence =-=[18]-=-. Using this characterization we define the semantics of the atomic formulas of our logic. Our style of operational semantics naturally provides for the symbolic evaluation of contexts. This allows us... |

111 | Algebraic reconstruction of types and effects
- Jouvelot, Gifford
- 1991
(Show Context)
Citation Context ...rresponding induction principles. Classes can be used to express simple and polymorphic types as well as the non-expansiveness of terms [34, 35, 6, 13]. This as well as other forms of effect analysis =-=[14, 15, 9]-=- can be carried out within the system. The ability to express effects as well as functionality allows us to give a simple semantics for type assertions such as those found in the ML type system. This ... |

98 |
Type Assignment in Programming Languages
- Damas
- 1985
(Show Context)
Citation Context ...The Operational Framework Following the Algol tradition, [2, 31, 8, 7, 29] Meyer and Sieber regard the true syntax of Algol like languages as the simply typed lambda calculus with references 'a la ML =-=[1, 23]-=- (!, := and ref). Mixing this with an earlier tradition, [10, 11, 12], we translate Algol into the untyped lambda calculus with (untyped) references (get, set and mk). 2.1 Terms The syntax of the term... |

98 |
Towards a fully abstract semantics for local variables
- Meyer, Sieber
- 1988
(Show Context)
Citation Context ...ype. References also interact unpleasantly with polymorphism [34, 35]. They are also troublesome from a denotational point of view as illustrated by the lack of fully abstract models. For example, in =-=[22]-=- Meyer and Sieber give a series of examples of programs that are operationally equivalent (according to the intended semantics of block-structured Algol-like programs) but which are not given equivale... |

91 |
A language and axioms for explicit mathematics
- Feferman
- 1975
(Show Context)
Citation Context ...am text by an equivalent one). In this paper we only describe the first order part of the logic. The full logic, a variable type theory of individuals and classes, is based on the systems of Feferman =-=[3, 4]-=- and Talcott [33] and is described in detail in [20]. The paper is organized as follows. In x2.1 we describe our language and its operational semantics. The operational semantics is then used, in x2.2... |

58 |
Types and effects, towards an integration of functional and imperative programming
- Lucassen
- 1987
(Show Context)
Citation Context ...rresponding induction principles. Classes can be used to express simple and polymorphic types as well as the non-expansiveness of terms [34, 35, 6, 13]. This as well as other forms of effect analysis =-=[14, 15, 9]-=- can be carried out within the system. The ability to express effects as well as functionality allows us to give a simple semantics for type assertions such as those found in the ML type system. This ... |

50 | Polymorphic type inference and assignment
- Leroy, Weis
- 1991
(Show Context)
Citation Context ...onstruction of inductively defined sets and derivation of the corresponding induction principles. Classes can be used to express simple and polymorphic types as well as the non-expansiveness of terms =-=[34, 35, 6, 13]-=-. This as well as other forms of effect analysis [14, 15, 9] can be carried out within the system. The ability to express effects as well as functionality allows us to give a simple semantics for type... |

49 | A Variable Typed Logic of Effects
- Honsell, Mason, et al.
- 1995
(Show Context)
Citation Context ...escribe the first order part of the logic. The full logic, a variable type theory of individuals and classes, is based on the systems of Feferman [3, 4] and Talcott [33] and is described in detail in =-=[20]-=-. The paper is organized as follows. In x2.1 we describe our language and its operational semantics. The operational semantics is then used, in x2.2, to define the operational or observational equival... |

35 |
The Calculi of Lambda-v-cs Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages
- Felleisen
- 1987
(Show Context)
Citation Context ...tion contexts identify the subexpression of an expression that is to be evaluated next. They correspond to the left-first, call-byvalue reduction strategy of Plotkin [30] and were first introduced in =-=[5]. R= -=-f"g+app(R;E)+app(V;R)+Fm+n+1 (V m ; R;E n ) R ranges over R. The crucial fact to note is that an arbitrary expression is either a value expression, or decomposes uniquely into a redex placed in a... |

35 | Semantics of local variables
- O’Hearn, Tennent
- 1992
(Show Context)
Citation Context ...h are not given equivalent denotations in traditional denotational semantics. They propose various modifications to the denotational semantics which solve some of these discrepancies, but not all. In =-=[27, 26]-=- a denotational semantics that overcomes some of these problems is presented. However variations on the seventh example remain problematic. Since numerous proof systems for Algol are sound for the den... |

26 | Inferring the equivalence of functional programs that mutate data
- Mason, Talcott
- 1992
(Show Context)
Citation Context ...ncerning divergence are: Lemma (*): (i) j= * e 0 ) (* e 1 , e 0 �� = e 1 ) (ii) j= * e ) * U [[e]] e closed (iii) j= * ex? This logic extends and improves the complete first order system presented=-= in [17, 21]-=-. There certain reasoning principles were established as basic, and from these all others, suitably restricted, could be derived using simple equational reasoning. Some of these principles are well kn... |

25 |
Trakhtenbrot, The semantics of local storage, or what makes the free-list free
- Halpern, Meyer, et al.
- 1984
(Show Context)
Citation Context ... overcomes some of these problems is presented. However variations on the seventh example remain problematic. Since numerous proof systems for Algol are sound for the denotational models in question, =-=[8, 7, 32, 28, 16, 27, 26]-=-, these equivalences, if expressible, must be independent of these systems. The problem which motivated Meyer and Sieber's paper, [22], was to provide mathematical justification for the informal but c... |

23 |
Polymorphic typed lambda-calculi in a type-free axiomatic framework
- Feferman
- 1990
(Show Context)
Citation Context ...am text by an equivalent one). In this paper we only describe the first order part of the logic. The full logic, a variable type theory of individuals and classes, is based on the systems of Feferman =-=[3, 4]-=- and Talcott [33] and is described in detail in [20]. The paper is organized as follows. In x2.1 we describe our language and its operational semantics. The operational semantics is then used, in x2.2... |

19 | Axiomatizing operational equivalence in the presence of side effects
- Mason, Talcott
- 1989
(Show Context)
Citation Context ...ncerning divergence are: Lemma (*): (i) j= * e 0 ) (* e 1 , e 0 �� = e 1 ) (ii) j= * e ) * U [[e]] e closed (iii) j= * ex? This logic extends and improves the complete first order system presented=-= in [17, 21]-=-. There certain reasoning principles were established as basic, and from these all others, suitably restricted, could be derived using simple equational reasoning. Some of these principles are well kn... |

13 |
From denotational to operational and axiomatic semantics for ALGOL-like languages: An overview
- Trakhtenbrot, Halpern, et al.
- 1984
(Show Context)
Citation Context ... overcomes some of these problems is presented. However variations on the seventh example remain problematic. Since numerous proof systems for Algol are sound for the denotational models in question, =-=[8, 7, 32, 28, 16, 27, 26]-=-, these equivalences, if expressible, must be independent of these systems. The problem which motivated Meyer and Sieber's paper, [22], was to provide mathematical justification for the informal but c... |

6 | Program transformations for configuring components
- Mason, Talcott
- 1991
(Show Context)
Citation Context ...formula eq(mod(u; 2); 0) �� = t. Lemma (5.1): \Phi 5 ) letfx := mk(u)g seq(app(q; ae 5 ); letfu := get(x)g((\Phi 5 ))) Lambda abstractions with local store, such as ae 5 , are objects in the sense=-= of [19]-=-. In that paper several principles for establishing operational equivalence were presented and used. The invariance theorems(inv) is typical of these principles. It provides a general method for estab... |

4 |
Problematic features of programming languages
- Manna, Waldinger
- 1981
(Show Context)
Citation Context ... overcomes some of these problems is presented. However variations on the seventh example remain problematic. Since numerous proof systems for Algol are sound for the denotational models in question, =-=[8, 7, 32, 28, 16, 27, 26]-=-, these equivalences, if expressible, must be independent of these systems. The problem which motivated Meyer and Sieber's paper, [22], was to provide mathematical justification for the informal but c... |

2 |
Hoare's logic for programs with procedures--what has been accomplished
- Olderog
(Show Context)
Citation Context |

1 |
A schematological approach to the analysis of the procedure concept in Algol-languages
- Damm, Fehr
- 1980
(Show Context)
Citation Context ...yer-Sieber examples and their justification within our framework. x5 contains a summary of this paper and future applications of the theory. 2 The Operational Framework Following the Algol tradition, =-=[2, 31, 8, 7, 29]-=- Meyer and Sieber regard the true syntax of Algol like languages as the simply typed lambda calculus with references 'a la ML [1, 23] (!, := and ref). Mixing this with an earlier tradition, [10, 11, 1... |