BIB-VERSION:: CS-TR-v2.0 ID:: STAN//CSL-TR-98-768 ENTRY:: August 13, 1998 ORGANIZATION:: Stanford University, Computer Systems Laboratory TITLE:: EJAVA - Causal Extensions for Java TYPE:: Technical Report AUTHOR:: Santoro, Alexandre AUTHOR:: Mann, Walter AUTHOR:: Madhav, Neel AUTHOR:: Luckham, David DATE:: August 1998 PAGES:: 25 ABSTRACT:: Programming languages like Jave provide designers with a variety of classes that simplify the process of building multithreaded programs. Though useful, especially in the creation of reactive systems, multithreaded programs present challenging problems such as race conditions and synchronization issues. Validating these programs against a specification is also not trivial since Java does not clearly indicate thread interaction. These problems can be solved by modifying Java so that it produces computations, collections of events with both causal and temporal ordering relations defined for them. Specifically, the causal ordering is ideal for identifying thread interaction. This paper presents eJava, an extension to Java that is both event based and causally aware, and shows how it simplifies the process of understanding and debugging multithreaded programs. NOTES:: [Adminitrivia V1/Prg/19971027] END:: STAN//CSL-TR-98-768