The tension between unconstrained mutation and algebraic semantic reasoning has been well known at least since Backus’ 1977 Turing Award paper introducing FP. After decades of bifurcation into communities that either ignored the problem, or addressed it by insisting on strict immutability, the PL field has recently begun to explore more nuanced approaches that emphasize the independence of mutable values.
Value independence upholds the ability to reason locally about semantics, from the variables mentioned alone. This ability is crucial both for human understanding of software developed at scale, and for automated code transformations such as optimization, which are otherwise inhibited by conservative aliasing assumptions.
These benefits are pushing imperative and object-oriented programming languages to adopt mechanisms such as value types (e.g., Java, C#, Swift, Hylo) and aliasing restrictions (e.g., Rust). On the other side of the spectrum, pure functional programming languages leverage value independence to transform functional patterns into in-place updates (e.g., Koka), in spite of immutability.
This workshop provides a forum for researchers and practitioners to discuss the (re)emergence of value independence as a theme in the user model of programming languages, its use in software applications, its use in compilers and interpreters for optimization, and the challenges related to its interaction with other modern programming language features.
We welcome experience reports on the design and implementation of applications or libraries, as well as research papers describing new approaches to bring or leverage value independence in new or existing programming languages.