Reintroduction of Control and Exception Structures to Java Byte Code


Sandy Ngo

Oral Defence Date: 

Thursday, December 4, 2008 - 13:00


SCI 241


1:00 PM


Professors Puder and Petkovic


AJAX, Asynchronous JavaScript and XML, makes interactive web applications possible by using JavaScript to access database and web services and dynamically updating portions of the webpage without refreshing. Using AJAX require converting desktop application to JavaScript, the common language of web applications. While converting JavaTM into JavaScript can be done more easily, codes for legacy application are not always available to be translate directly therefore translating from JavaTM classes into JavaScript would be ideal. Since JavaTM byte code, have "goto" statements, it cannot be directly translated into JavaScript, which do not contain goto statements. In order to translate JavaTM byte code into JavaScript, these "goto" statements must be replaced with the original control and exception structures from the JavaTM program. Lyle Ramshaw paper, "Eliminating Go To's While Preserving Program Structure", go into strategies for eliminating goto in a reducible "goto" program into a multi-level exits program. In this project, we used Ramshaw's forward/backward elimination rules, arrow stretching rules to reintroduce control structure to the byte code program (Ramshaw, 1988). Along with those rules, we also developed an algorithm to restore exceptions structures in XMLVM. The goal for this project was to reintroduce control and exceptions structures back into XMLVM in order to eliminate "goto" statements and allow XML11 to dynamically transform desktop applications into browser-compatible JavaScript applications.

Sandy Ngo

XMLVM, XML11, JavaScript, Java Byte Code, Control Structure, converting Java Byte Code into JavaScript, Google GWT, Ramshaw algorithm, multi level exit program, AJAX