The Semantics of Future and Its Use in Program Optimization The Semantics of Future and Its Use in Program Optimization