## Imperative Lambda Calculus Revisited (1997)

Citations: | 3 - 1 self |

### BibTeX

@MISC{Yang97imperativelambda,

author = {Hongseok Yang and Uday Reddy},

title = {Imperative Lambda Calculus Revisited},

year = {1997}

}

### OpenURL

### Abstract

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 Hindley-Milner 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 state-manipulation are in conflict has been dispelled. Several programming languages have now been designed which combine functions and assignments without destroying algeb...

### Citations

440 | A sound type system for secure flow analysis
- Volpano, Irvine, et al.
- 1996
(Show Context)
Citation Context ... languages) and must ensure that no references to stack storage are present in the objects created on the heap. Another application is ensuring secure flow of information in security-critical systems =-=[VSI96]-=-. The aspects of Syntactic Control of Interference that are retained in the Imperative Lambda Calculus type system have a wide range of applications. We have implemented a prototype type reconstructio... |

251 | Polymorphic effect systems - Lucassen, Gifford - 1988 |

159 | The type and effect discipline - Talpin, Jouvelot - 1994 |

135 |
Syntactic control of interference
- Reynolds, Jan
- 1978
(Show Context)
Citation Context ...bles and most polymorphic functions need to come in (at least) two versions which differ only in the type variables used. Our solutions for these problems are based on the pioneering work of Reynolds =-=[Rey78] on "-=-syntactic control of interference" and the recent advances on the topic [Rey89, Red94, Red93, OPTT95]. While the main thrust of this work is the control of interference (to facilitate reasoning),... |

111 | Design of the programming language Forsythe
- Reynolds
- 1996
(Show Context)
Citation Context ...ges, which avoid the run-time overhead of the untyped languages as well as the conceptual overhead of typed state. These languages are also closer in conception to imperative languages based on Algol =-=[Rey97]. Unf-=-ortunately, the type systems designed for these languages are not satisfactory. They have severe restrictions that disallow 1 factorial :: Int -? Int factorial n = run (newref 1 ?? "p -? let loop... |

98 | Type inference with simple subtypes - Mitchell - 1991 |

92 | Is there a use for linear logic
- Wadler
- 1991
(Show Context)
Citation Context ...tor notation ! n , where n 2 f0; 1g is called an annotation. The notation ! 1 means ! whereas ! 0 corresponds to having no ! constructor. (Similar notation is used by Wadler in his linear type system =-=[Wad91]-=-.) So, standard types will be given by the syntax: ` ::= ! n ae ae ::= fi(` 1 ; : : : ; ` n ) j ` 1 \Theta ` 2 j ` 1 ! ` 2 n ::= 0 j 1 8 Axiom j z: ` ` z: ` Const k: ` is a constant j ` k: ` \Pi j \Ga... |

80 | A taste of linear logic - Wadler - 1993 |

78 | Type inference with subtypes - Fuh, Mishra - 1988 |

73 | Single-threaded polymorphic lambda calculus - Guzmán, Hudak - 1990 |

54 | Term assignment for intuitionistic linear logic. Announced on the Types electronic mailing list - Benton, Bierman, et al. - 1992 |

43 | Unification and ML Type Reconstruction
- Kanellakis, Mairson, et al.
- 1991
(Show Context)
Citation Context ..." which is a collection of typings for distinct let-bound variables. Every occurrence of a let-bound variable will receive a separate instance of its typing in the environment. (The technique is =-=from [KMM91]-=-.) Theorem 9 T (e; E) = (\Sigma ` e : ` [G]) if and only if the judgement is the principal typing for e in the following sense: If E = f\Sigma 0 i ` x i : ` i [G i ]g i then, for all terms with most g... |

40 | Syntactic control of interference revisited
- O’Hearn, Power, et al.
- 1999
(Show Context)
Citation Context ...tion cannot use any imperative information from its inputs. The essential syntax of the language is defined by the type rules shown in Fig. 3, which is adapted from the "SCI Revisited" type =-=system of [OPTT95]-=-. Typing judgements are of the form \Pi j \Gamma ` M : ` where M is a term, ` its type and \Pi and \Gamma are collections of typing assumptions for the free identifiers of M . The two partitions \Pi a... |

37 | Assignments for applicative languages
- Swarup, Reddy, et al.
- 1990
(Show Context)
Citation Context ...d, writing polymorphic functions is cumbersome. In this paper, we define an improved type system that solves these problems. An important feature of the Imperative lambda calculus(ilc) type system of =-=[SRI91]-=- is the notion of encapsulated state threads which carry out state-manipulation internally but appear as applicative values to the outside. The example program in Fig. 1 (in Haskell syntax) illustrate... |

32 |
Call by name, assignment, and the lambda calculus
- Odersky, Rabin, et al.
(Show Context)
Citation Context ...s", combining the usefulness of assignments with the semantic elegance of higher-order functional programming. The languages presented in the literature fall into three classes: ffl untyped langu=-=ages [ORH93]-=-, ffl typed languages with command types, but no state types [SRI91, CO94], and ffl typed languages with typed state [LP95]. Our focus is on the second class of languages, which avoid the run-time ove... |

25 |
Typability and Type Checking in the Second-Order - Calculus Are Equivalent and Undecidable. submitted to APAP
- Wells
- 1996
(Show Context)
Citation Context ...h quantified types are treated in the Launchbury-Peyton Jones system. (They are forced to treat them in a restricted fashion to avoid the undecidability issues in type inference with quantified types =-=[Wel94]-=-.) We can now add a constant: run : !(Cmd ) !s(2) representing the intuition that a passive command that returns an applicative value is just a computation of an applicative value. The solution for th... |

17 | Linear logic and interference control - O’Hearn - 1991 |

13 |
Syntactic control of interference, Part II
- Reynolds
- 1989
(Show Context)
Citation Context ...oblem. Some features of our work resemble linear logic-based type systems [Wad91, GH90], and effect systems [LG88, TJ94]. There are also close connections to subtyping systems [Mit91, FM90]. Reynolds =-=[Rey89]-=- has devised an alternative type system for syntactic control of interference using conjunctive types. These ideas could also be used in the context of ilc, though we do not consider them here. 2 Issu... |

12 |
A type system for a lambda calculus with assignments
- Chen, Odersky
- 1994
(Show Context)
Citation Context ... versions of its argument without adding any imperative effects of its own. But, there is no mechanism in the original ilc type system to recognize such applicative entities. An ad hoc fix is used in =-=[CO94]-=- where all let-bound identifiers are expanded out for the purpose of type checking. This handles the example in Fig. 2 because the binding of for has no free identifiers. But, naturally, this fix woul... |

11 | Passivity and independence - Reddy - 1994 |

6 | Global state considered unnecessary: Semantics of interference-free imperative programming - Reddy - 1993 |

3 | Type reconstruction for SCI
- Huang, Reddy
- 1996
(Show Context)
Citation Context ...sent a conceptual overhead which we would like to avoid. Rabin [Rab96] attempts to combine the features of ilc and state threads though he did not consider type reconstruction issues. Huang and Reddy =-=[HR96]-=- present a type reconstruction system for syntactic control of interference. The promotion and dereliction operations are explicitly represented in the term syntax. In contrast, we make them implicit ... |

3 | Calculi for Functional Programming Languages with Assignments
- Rabin
- 1996
(Show Context)
Citation Context ...use additional type parameters for the imperative type constructors that express state-dependence. These additional type parameters represent a conceptual overhead which we would like to avoid. Rabin =-=[Rab96]-=- attempts to combine the features of ilc and state threads though he did not consider type reconstruction issues. Huang and Reddy [HR96] present a type reconstruction system for syntactic control of i... |