The Multiverse Programming Paradigm: Programming with Values Annotated with Metadata

Document Type


Publication Date



Sequenced semantics, which was first proposed in the context of temporal databases, is the semantics for the evaluation of a program on values annotated with time metadata. The time metadata records when each value is "live" (is valid or has existence). Sequenced semantics stipulates that a computation on values annotated with temporal metadata must be equivalent to, in effect, running the computation at every time point with only the values alive at that time. Sequenced semantics is challenging to program since it is more than just a re-interpretation of the run-time behavior of a program, for instance, a sequenced "if-else" statement may need to evaluate both the "true" and "false" branches, in different time slices of the computation.We present MultiverseJava. MultiverseJava supports sequenced semantics for timestamped values in a Java program. Programmers currently have to resort to ad hoc methods to implement sequenced semantics in Java programs, hence, a better approach is needed. We show how MultiverseJava can be implemented using a Java to MultiverseJava translation. The translation layer weaves support for computing with the timestamped values into a Java program.

This document is currently not available here.