Do Mutable Variables Have Reference Types?
Abstract
Implicit heterogeneous metaprogramming (a.k.a. offshoring) is an attractive approach for generating C with some correctness guarantees: generate OCaml code, where the correctness guarantees are easier to establish, and then map that code to C. The key idea is that simple imperative OCaml code looks like a non-standard notation for C. Regretfully, it is false, when it comes to mutable variables. In the past, the approach was salvaged by imposing strong ad hoc restrictions. The present paper for the first time investigates the problem systematically and discovers general solutions needing no restrictions. In the process we explicate the subtleties of modeling mutable variables by values of reference types and arrive at an intuitively and formally clear correspondence. We also explain C assignment without resorting to L-values.
Cite
@article{arxiv.2211.04107,
title = {Do Mutable Variables Have Reference Types?},
author = {Oleg Kiselyov},
journal= {arXiv preprint arXiv:2211.04107},
year = {2022}
}
Comments
Peer-reviewed, accepted for presentation and presented at the ACM SIGPLAN ML Family Workshop 2022