A Syntactic Model of Mutation and Aliasing
Paola Giannini (DiSIT, Universita' del Piemonte Orientale), Marco, Servetto (School of Engineering, Computer Science, Victoria University of, Wellington), Elena Zucca (DIBRIS, Universita' di Genova)

TL;DR
This paper introduces a syntactic memory model for imperative languages that simplifies reasoning about aliasing and memory isolation by embedding memory directly into program syntax, enabling easier analysis and implementation.
Contribution
It presents a novel syntactic approach to modeling memory and aliasing in imperative languages, replacing auxiliary structures with embedded syntax for improved reasoning.
Findings
Syntactic model encodes memory as part of program syntax.
Capsules represent isolated memory portions, facilitating safe movement.
Model can be encoded into conventional semantic models for implementation.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Logic, programming, and type systems · Parallel Computing and Optimization Techniques
