1 research outputs found
Explicit and Controllable Assignment Semantics
Despite the plethora of powerful software to spot bugs, identify performance
bottlenecks or simply improve the overall quality of code, programming
languages remain the first and most important tool of a developer. Therefore,
appropriate abstractions, unambiguous syntaxes and intuitive semantics are
paramount to convey intent concisely and efficiently. The continuing growth in
computing power has allowed modern compilers and runtime system to handle once
thought unrealistic features, such as type inference and reflection, making
code simpler to write and clearer to read. Unfortunately, relics of the
underlying memory model still transpire in most programming languages, leading
to confusing assignment semantics. This paper introduces Anzen, a programming
language that aims to make assignments easier to understand and manipulate. The
language offers three assignment operators, with unequivocal semantics, that
can reproduce all common imperative assignment strategies. It is accompanied by
a type system based on type capabilities to enforce uniqueness and
immutability. We present Anzen's features informally and formalize it by the
means of a minimal calculus.Comment: 13 pages, 2 figures, MPLR'201