TY - JOUR
T1 - Flexible recovery of uniqueness and immutability
AU - Giannini, Paola
AU - Servetto, Marco
AU - Zucca, Elena
AU - Cone, James
N1 - Publisher Copyright:
© 2018 Elsevier B.V.
PY - 2019/4/11
Y1 - 2019/4/11
N2 - We present an imperative object calculus where types are annotated with qualifiers for aliasing and mutation control. There are two key novelties with respect to similar proposals. First, the type system is very expressive. Notably, it adopts the recovery approach, that is, using the type context to justify strengthening types, greatly improving its power by permitting to recover uniqueness and immutability properties even in presence of other references. This is achieved by rules which restrict the use of such other references in the portion of code which is recovered. Second, execution is modeled by a non standard operational model, where properties of qualifiers can be directly expressed on source terms, rather than as invariants on an auxiliary structure which mimics physical memory. Formally, this is achieved by the block construct, introducing local variable declarations, which, when evaluated, play the role of store.
AB - We present an imperative object calculus where types are annotated with qualifiers for aliasing and mutation control. There are two key novelties with respect to similar proposals. First, the type system is very expressive. Notably, it adopts the recovery approach, that is, using the type context to justify strengthening types, greatly improving its power by permitting to recover uniqueness and immutability properties even in presence of other references. This is achieved by rules which restrict the use of such other references in the portion of code which is recovered. Second, execution is modeled by a non standard operational model, where properties of qualifiers can be directly expressed on source terms, rather than as invariants on an auxiliary structure which mimics physical memory. Formally, this is achieved by the block construct, introducing local variable declarations, which, when evaluated, play the role of store.
KW - Aliasing
KW - Immutability
KW - Imperative calculi
KW - Type systems
UR - http://www.scopus.com/inward/record.url?scp=85053298437&partnerID=8YFLogxK
U2 - 10.1016/j.tcs.2018.09.001
DO - 10.1016/j.tcs.2018.09.001
M3 - Article
SN - 0304-3975
VL - 764
SP - 145
EP - 172
JO - Theoretical Computer Science
JF - Theoretical Computer Science
ER -