“…As an operational semantics, pomsets are able to distinguish between call-by-value, call-by-name, callby-need, and call-by-speculation evaluation strategies (even though all but the first of these have the same standard semantics), including the subtle distinction between "lazy evaluation" and "fully lazy evaluation" (which are refiined versions of call-by-need). Furthermore, as a "handle" from which to control operational behavior, pomsets allow us to express most of the behaviors achieved by previously proposed annotations that control not only evaluation order [1,8,14], but also the spatial mapping of program to machine [5,8,12]. In addition, we have used pomset-based annotations to express several other non-trivial operational behaviors, including the routing of data through a multiprocessor network (dually, the path taken in accessing a value), and the synchronized, lock-step execution of two (unrelated) recursive function calls.…”