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
Times are displayed in time zone: Tijuana, Baja California change

15:30 - 17:00: Session the ThirdOnward! Papers at Salon A
Chair(s): Shriram KrishnamurthiBrown University
15:30 - 15:52
Korz: Simple, Symmetric, Subjective,
 Context-Oriented Programming
Onward! Papers
David UngarIBM Research, Harold OssherIBM Research, Doug KimelmanIBM Research
15:52 - 16:15
Mining the Ecosystem to Improve Type Inference For Dynamically Typed Languages
Onward! Papers
Boris SpasojevicUniversity of Bern, Switzerland, Mircea LunguUniversity of Bern, Switzerland, Oscar NierstraszUniversity of Bern, Switzerland
16:15 - 16:37
Description Logic as Programming Language
Onward! Papers
James SkeneAuckland University of Technology
16:37 - 17:00
It's only illegal if you get caught
Onward! Papers
Raphaël ProustUniversity of Cambridge, Alan MycroftUniversity of Cambridge