Abstract
Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed λ-calculus is used to limit sharing of storage variables; in particular, different identifiers are required never to interfere. This paper examines semantic foundations of the approach.We describe a category that has (an abstraction of) interference information built into all objects and maps. This information is used to define a ‘tensor’ product whose components are required never to interfere. Environments are defined using the tensor, and procedure types are obtained via a suitable adjunction. The category is a model of intuitionistic linear logic. Reynolds' concept of passive type - i.e. types for phrases that do not write to any storage variables - is shown to be closely related, in this model, to Girard's ‘of course’ modality.
Highlights
The ability to update the state is the source of much of the exibility and e ciency of imperative programming, and many of its di culties
The well-known dishevelment caused by variable aliasing { when di erent identi ers name the same storage variable { in Hoare-style proof systems for reasoning about assignment and procedures (Hoare, 1971) is a kind of theoretical symptom of the problems brought on by interference
The purpose of this paper is to show that the interference constraints that form the basis of the approach have good semantic properties
Summary
Follow this and additional works at: https://surface.syr.edu/lcsmith_other Part of the Programming Languages and Compilers Commons. Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a re nement of typed -calculus is used to limit sharing of storage variables; in particular, di erent identi ers are required never to interfere. We describe a category that has (an abstraction of) interference information built into all objects and maps. This information is used to de ne a \tensor" product whose components are required never to interfere. Reynolds' concept of passive type { i.e. types for phrases that don't write to any storage variables { is shown to be closely related, in this model, to Girard's \" modality
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have