Annotation-aware dynamic compilation and interpretation | | Posted on:2003-01-06 | Degree:Ph.D | Type:Dissertation | | University:University of California, Irvine | Candidate:Azevedo, Ana Lucia Velloso | Full Text:PDF | | GTID:1468390011989018 | Subject:Computer Science | | Abstract/Summary: | PDF Full Text Request | | The new trends in mobile computing are transforming the way application programs are delivered and executed. Languages for Internet computing, like Sun's Java and Microsoft's .NET, replace finished optimized native code for a compact, portable and verifiable software distribution format. These technologies advocate a remote execution model based on virtual machine engines for translating programs in the transfer format, enabling execution at heterogeneous target platforms.; Traditional offline or ahead-of-time (AOT) compilers that once strived to enforce speed and size tradeoffs now have to comply with yet more requirements not easily attainable at the same time, such as portability and security. Furthermore, certain requirement constraints may only be known at runtime. Abiding to the above requirements limits the scope of optimizations AOT compilers can apply to a program representation and delegates to the runtime system at a target platform the important task of producing efficient machine code through an optimizing translation process. The latter adds an extra overhead to program execution time perceived by a user.; In this dissertation we contend that albeit the dynamic nature of beneficial code optimizations, AOT compiler technology can further improve the efficiency of runtime program translation. We introduce the concepts of annotation-generating compiler and annotation-aware Java Virtual Machines (JVMs) as a way to achieve this goal. Code annotations convey to the runtime system extra valuable information that static program analysis and program profiling can generate to save translation time and improve translated native code quality. As a proof of concept, we show the applicability of annotations in two translation scenarios. We built an annotation-aware just-in-time (JIT) compiler in which annotations carry missing information about register allocation. We designed Java bytecode interpretation techniques in which annotations customize the JVM instruction set, allowing groups of bytecode operations to be translated together. We show how different types of annotations are generated offline, how to encode annotations in Java class files without hindering portability and how annotations can be safely deployed by JVM engines. Our results reveal that code annotations have advantages and limitations, overall proving to be a valid engineering solution for the efficient execution of Java programs. | | Keywords/Search Tags: | Program, Annotations, Java, Annotation-aware, Execution | PDF Full Text Request | Related items |
| |
|