TY - JOUR
T1 - Tracing sharing in an imperative pure calculus
AU - Giannini, Paola
AU - Richter, Tim
AU - Servetto, Marco
AU - Zucca, Elena
N1 - Publisher Copyright:
© 2018 Elsevier B.V.
PY - 2019/3/1
Y1 - 2019/3/1
N2 - We introduce a type and effect system, for an imperative object calculus, which infers sharing possibly introduced by the evaluation of an expression, represented as an equivalence relation among its free variables. This direct representation of sharing effects at the syntactic level allows us to express in a natural way, and to generalize, widely-used notions in literature, notably uniqueness and borrowing. Moreover, the calculus is pure in the sense that reduction is defined on language terms only, since they directly encode store. The advantage of this non-standard execution model with respect to a behaviorally equivalent standard model using a global auxiliary structure is that reachability relations among references are partly encoded by scoping.
AB - We introduce a type and effect system, for an imperative object calculus, which infers sharing possibly introduced by the evaluation of an expression, represented as an equivalence relation among its free variables. This direct representation of sharing effects at the syntactic level allows us to express in a natural way, and to generalize, widely-used notions in literature, notably uniqueness and borrowing. Moreover, the calculus is pure in the sense that reduction is defined on language terms only, since they directly encode store. The advantage of this non-standard execution model with respect to a behaviorally equivalent standard model using a global auxiliary structure is that reachability relations among references are partly encoded by scoping.
KW - Imperative calculi
KW - Sharing
KW - Type and effect systems
UR - https://www.scopus.com/pages/publications/85058641277
U2 - 10.1016/j.scico.2018.11.007
DO - 10.1016/j.scico.2018.11.007
M3 - Article
SN - 0167-6423
VL - 172
SP - 180
EP - 202
JO - Science of Computer Programming
JF - Science of Computer Programming
ER -