Skip to main navigation Skip to search Skip to main content

A syntactic model of mutation and aliasing

Research output: Contribution to journalConference articlepeer-review

Abstract

Traditionally, semantic models of imperative languages use an auxiliary structure which mimics memory. In this way, ownership and other encapsulation properties need to be reconstructed from the graph structure of such global memory. We present an alternative syntactic model where memory is encoded as part of the program rather than as a separate resource. This means that execution can be modelled by just rewriting source code terms, as in semantic models for functional programs. Formally, this is achieved by the block construct, introducing local variable declarations, which play the role of memory when their initializing expressions have been evaluated. In this way, we obtain a language semantics which directly represents at the syntactic level constraints on aliasing, allowing simpler reasoning about related properties. To illustrate this advantage, we consider the issue, widely studied in the literature, of characterizing an isolated portion of memory, which cannot be reached through external references. In the syntactic model, closed block values, called capsules, provide a simple representation of isolated portions of memory, and capsules can be safely moved to another location in the memory, without introducing sharing, by means of affine variables. We prove that the syntactic model can be encoded in the conventional one, hence efficiently implemented.

Original languageEnglish
Pages (from-to)39-55
Number of pages17
JournalElectronic Proceedings in Theoretical Computer Science, EPTCS
Volume293
DOIs
Publication statusPublished - 2019
Event12th Workshop on Developments in Computational Models, DCM 2018 and 9th Workshop on Intersection Types and Related Systems, ITRS 2018 - Oxford, United Kingdom
Duration: 8 Jul 20188 Jul 2018

Fingerprint

Dive into the research topics of 'A syntactic model of mutation and aliasing'. Together they form a unique fingerprint.

Cite this