IWACO 2017

Stable object identity and shared mutable state are two powerful principles in object oriented programming. The ability to create aliases to mutable objects allows a direct modelling of sharing that occurs naturally in a domain, and lies at the heart of efficient programming patterns where aliases provide shortcuts to key places in a data structure. In a concurrent setting however, aliasing is at the root of data-races and low-level bugs as multiple threads can directly access shared objects.

Coping with pointers, aliasing and the proliferation of shared mutable state is a problem that crosscuts the software development stack, from compilers and run-times to bug-finding tools and end-user software. They complicate modular reasoning and program analysis, efficient code generation, efficient use of memory, and obfuscate program logic.

Several techniques have been introduced to describe and reason about stateful programs, and to restrict, analyze, and prevent aliases. These include various forms of ownership types, capabilities, separation logic, linear logic, uniqueness, sharing control, escape analysis, argument independence, read-only references, linear references, effect systems, and access control mechanisms. These tools have found their way into type systems, compilers and interpreters, run-time systems and bug-finding tools.

The International Workshop on Aliasing, Capabilities and Ownership, IWACO’17 will focus on these techniques, on how they can be used to reason about stateful (sequential or concurrent) programs, and how they have been applied to programming languages.

Call for Papers

Stable object identity and shared mutable state are two powerful principles in object oriented programming. The ability to create aliases to mutable objects allows a direct modelling of sharing that occurs naturally in a domain, and lies at the heart of efficient programming patterns where aliases provide shortcuts to key places in a data structure. In a concurrent setting however, aliasing is at the root of data-races and low-level bugs as multiple threads can directly access shared objects.

Coping with pointers, aliasing and the proliferation of shared mutable state is a problem that crosscuts the software development stack, from compilers and run-times to bug-finding tools and end-user software. They complicate modular reasoning and program analysis, efficient code generation, efficient use of memory, and obfuscate program logic.

Several techniques have been introduced to describe and reason about stateful programs, and to restrict, analyze, and prevent aliases. These include various forms of ownership types, capabilities, separation logic, linear logic, uniqueness, sharing control, escape analysis, argument independence, read-only references, linear references, effect systems, and access control mechanisms. These tools have found their way into type systems, compilers and interpreters, run-time systems and bug-finding tools.

IWACO’17 will focus on these techniques, on how they can be used to reason about stateful (sequential or concurrent) programs, and how they have been applied to programming languages. In particular, we will consider papers on: