Growing DrJava to cope with language extensions carried out in Java 5.0
Jensen, Michael Dyrby
Cartwright, Robert S.
Master of Science
While Java continues to gain popularity in both industry and academia, few Java programming environments enable the user to directly interact with the code. Professional environments require developers to use a command line interface to execute Java code. In contrast, our DrJava programming environment supports a read-eval-print-loop (REPL) incorporating a Java interpreter called DynamicJava---enabling developers to execute arbitrary fragments of Java code on-the-fly. DynamicJava was developed at the University of Nice, but development ceased in 2002 with DynamicJava supporting Java 1.3. In 2004, the Java language was extended in the Java 1.5 (renamed 5.0) release. To support Java 5.0 in DrJava, we were confronted with the task of extending DynamicJava to support the new language features. This dissertation describes the new features in Java 5.0---including generic types, autoboxing, variable arguments, static import, foreach, enumeration types and metadata---and explains how we extended the existing DynamicJava code base to support them.