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

Read more

Summary

A Model for Syntactic Control of Interference

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

Introduction
Background on Interference Control
Semantic Aspects of State Dependence
Overview of the Model
Outline
Interference Constraints
Functors and State Dependence
The Category of Worlds
Command Meanings
Support
Pullbacks and Support
The Semantic Category
Discussion
Independence
The Tensor Product
The Exponential
Interpretation of Typing Rules
Types and Environments
Selected Algol-like Rules
Semantical Passivity
Passive Elements
Passive Objects
Passive Types
Typing Rules and their Interpretations
Block Expressions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call