Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Calculi for functional programming languages with assignment
Publisher:
  • Yale University
  • Computer Science Dept. 51 Prospect St. New Haven, CT
  • United States
ISBN:978-0-591-01891-2
Order Number:AAI9636080
Pages:
161
Bibliometrics
Skip Abstract Section
Abstract

Pure functional programming and imperative programming appear to be contradictory approaches to the design of programming languages. Pure functional programming insists that variables have unchanging bindings and that these bindings may be substituted freely for occurrences of the variables. Imperative programming, however, relies for its computational power on the alteration of variable bindings by the action of the program.

One particular approach to merging the two design principles into the same programming language introduces a notion of assignable variable distinct from that of functionally bound variable. In this approach, functional programming languages are extended with new syntactic constructs denoting sequences of actions, including assignment to and reading from assignable variables. Swarup, Reddy and Ireland have proposed a typed lambda-calculus in this style as a foundation for programming-language design. Launchbury has proposed to extend strongly-typed purely functional programming in this style in such a way that assignments are carried out lazily.

In this dissertation we extend and correct the work of Odersky, Rabin, and Hudak giving an untyped lambda-calculus as a formalism for designing functional programming languages having assignable variables. The extension encompasses two untyped calculi sharing a common core of syntactic constructs and rules corresponding to the similarities in all the typed proposals, and differing in ways that isolate the semantic differences between those proposals. We prove the consistency and suitability for implementation of the two calculi. We adapt a technique of Launchbury and Peyton Jones to provide a safe type system for the calculi we study, thus providing a correct replacement for systems, now known to be flawed, originally proposed by Swarup, Reddy, Ireland, Chen, and Odersky.

Contributors
  • Yale University
  • Yale University

Recommendations