Date of Award:


Document Type:


Degree Name:

Master of Science (MS)


Computer Science

Committee Chair(s)

Curtis Dyreson


Curtis Dyreson


Nicholas Flann


Daniel Watson


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 because 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.

This thesis introduces MultiverseJava. MultiverseJava supports sequenced semantics for time stamped 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 MultiverseJava to Java translation. The translation layer weaves support for computing with the timestamped values into a Java program. This thesis describes the MultiverseJava architecture, the layer, semantic templates, and experiments to quantify the cost of MultiverseJava.