Omkar Joshi

Graduation Semester and Year




Document Type


Degree Name

Master of Science in Electrical Engineering


Electrical Engineering

First Advisor

Ali Davoudi

Second Advisor

David Levine


Java, a programming language developed by Sun Microsystems in 1991, now managed by Oracle, has become one of the most popular computer languages for application development. This popularity can be credited to Java being architectural neutral and portable. It means that a Java program executed on any computer will yield the same result, irrespective of the underlying hardware. When a Java program is compiled it creates a Java class file. The class file contains instructions known as Bytecodes, which are executed by the Java Virtual Machine (JVM). The JVM is an abstract processor, which interprets and translates the bytecodes into instructions for the native processor. The process of interpretation, along with functionality such as dynamic linking, Just-in-time compilation and on demand class loading, makes the execution of a Java application slower than compiled programs. In order to speed up this execution of the Java program, this project has developed a processor for which the bytecodes are the native instructions. This eliminates the time spent on interpretation and translation. Also, with the implementation of the Java Machine, certain run-time dependencies can be eliminated by pre-processing the class file, before loading it into the memory of the processor. By developing the processor on a Field Programmable Gate Array (FPGA), the Java Machine can be kept up to date with the newest Java standards even after it is installation in the field. The FPGA processor can also be optimized to specific applications by adding application specific hardware modules to speed up the processing.


FPGA, Java Virtual Machine, Java processor


Electrical and Computer Engineering | Engineering


Degree granted by The University of Texas at Arlington