Onward! 2014
Mon 20 - Fri 24 October 2014 Portland, Oregon, United States
co-located with SPLASH 2014
Thu 23 Oct 2014 16:37 - 17:00 at Salon A - Session the Third Chair(s): Shriram Krishnamurthi

Programming languages and coding standards provide invariants to ease reasoning about the correctness of code. Although useful, invariants are often intentionally broken by programmers for performance or compatibility purposes. An operation that consists of multiple steps can preserve an invariant overall even though it breaks it temporarily during the process—e.g., inserting a node into a doubly linked list takes two operations between which the list is ill-formed. It is important that intermediate states of these operations are not observable by the rest of the program. We explore various devices that are used to bundle together the different steps of such an operation in a way that hides intermediate states—bringing some form of atomicity. However, while all these constructs might work in a certain context there is no way to ensure they still work for extensions and new versions of the programming language, the underlying operating system, the linked libraries, or even the processor architecture. We propose a new construct, opaque, to overcome these problems—decoupling code correctness and execution context—and future-proof invariant-breaking code by insisting that both current and future versions of the compiler treat the enclosed block as having no observable intermediate states.

Thu 23 Oct (GMT-07:00) Tijuana, Baja California change

15:30 - 17:00: Onward! Papers - Session the Third at Salon A
Chair(s): Shriram KrishnamurthiBrown University
onward2014-papers15:30 - 15:52
David UngarIBM Research, Harold OssherIBM Research, Doug KimelmanIBM Research
onward2014-papers15:52 - 16:15
Boris SpasojevicUniversity of Bern, Switzerland, Mircea LunguUniversity of Bern, Switzerland, Oscar NierstraszUniversity of Bern, Switzerland
onward2014-papers16:15 - 16:37
James SkeneAuckland University of Technology
onward2014-papers16:37 - 17:00
Raphaël ProustUniversity of Cambridge, Alan MycroftUniversity of Cambridge