Marked store models
Marked store models are an early technique for modelling a first-order store that has the ability to allocate fresh variables. They do so by imitating the implementation: memory allocation is modelled by systematically picking an uninitialized location.
Marked store models are not pleasant to work with mathematically. They have been almost completely replaced by models based on functor categories or nominal sets.
Example
There are many ways to express the same idea. The example here comes from Sieber 1996.
Let
\textsf{next} : \mathcal{P}_\text{fin}(\textsf{Loc}) \to \textsf{Loc}
which, for each finite set of 'locations currently in use'
A marked store is then a finite function
m : \textsf{Loc} \rightharpoonup_\textsf{fin} \mathbb{N}
- Its finite domain
dom(m) is the locations marked as active. m(\ell) are the contents of location\ell (if defined)\textsf{next}(dom(m)) is the next free location to be allocated next.
References
- The following classic books on denotational semantics contain descriptions of marked store models:
- Some of this bibliography and the example come from
@article{sieber_full_1996,
title = {Full abstraction for the second order subset of an {Algol}-like language},
volume = {168},
doi = {10.1016/S0304-3975(96)00066-7},
number = {1},
journal = {Theoretical Computer Science},
author = {Sieber, Kurt},
year = {1996},
pages = {155--212},
annote = {This is the JOURNAL version of the article from 1994. “Algol-like languages” contains the conference version.}
}