A linear logic model of state

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 higher-order imperative programming languages 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 higher-order Algol-like language can be embedded in it.

[1]  Guo-Qiang Zhang dI-Domains as Prime Information Systems , 1992, Inf. Comput..

[2]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[3]  R. Jagadeesan,et al.  Games and Full Abstraction for PCF : Preliminary , 1993 .

[4]  Shôichirô Sakai On type *-algebras , 1967 .

[5]  Vipin Swarup,et al.  Assignments for Applicative Languages , 1991, FPCA.

[6]  Peter W. O'Hearn Linear Logic and Interference Control , 1991, Category Theory and Computer Science.

[7]  Glynn Winskel,et al.  Events in computation , 1980 .

[8]  Frank J. Oles,et al.  Type Algebras, Functor Categories, and Block Structure , 1986 .

[9]  R. A. G. Seely,et al.  Linear Logic, -Autonomous Categories and Cofree Coalgebras , 1989 .

[10]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[11]  Pierre Cartier,et al.  Problemes combinatoires de commutation et rearrangements , 1969 .

[12]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[13]  Uday S. Reddy,et al.  A Linear Logic Model of State ( Extended Abstract ) , 1993 .

[14]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[15]  康焱 Cambridge University , 1900, Nature.

[16]  Richard C. Holt,et al.  The Turing programming language , 1988, CACM.

[17]  Dick Pountain A tutorial introduction to Occam programming - including a specification section defining the extended Occam language , 1986 .

[18]  Philip Wadler,et al.  Is there a use for linear logic? , 1991, PEPM '91.

[19]  A. Kock Strong functors and monoidal monads , 1972 .

[20]  Philip Wadler,et al.  Linear Types can Change the World! , 1990, Programming Concepts and Methods.

[21]  Yves Lafont,et al.  The Linear Abstract Machine , 1988, Theor. Comput. Sci..

[22]  Patrick Lincoln,et al.  Linear logic , 1992, SIGA.

[23]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[24]  Dominique Perrin Words over a Partially Commutative Alphabet , 1985 .

[25]  David K. Gifford,et al.  Integrating functional and imperative programming , 1986, LFP '86.

[26]  Glynn Winskel,et al.  Event Structures , 1986, Advances in Petri Nets.

[27]  J. Girard,et al.  Proofs and types , 1989 .

[28]  Jean-Yves Girard,et al.  A new constructive logic: classic logic , 1991, Mathematical Structures in Computer Science.

[29]  John C. Reynolds,et al.  Syntactic control of interference , 1978, POPL.

[30]  Albert R. Meyer,et al.  Towards fully abstract semantics for local variables , 1988, POPL '88.

[31]  Antoni W. Mazurkiewicz,et al.  Basic notions of trace theory , 1988, REX Workshop.

[32]  Paul Hudak,et al.  Call by name, assignment, and the lambda calculus , 1993, POPL '93.

[33]  Samson Abramsky,et al.  Computational Interpretations of Linear Logic , 1993, Theor. Comput. Sci..