Aim of the course
Introduction into the problems of virtual machines using the example of the Java virtual machine. Getting the skills and competencies to understand the principles of virtual machines, automatic memory management, ideas and principles of compiling into the intermediate code.
Java as a specification, language and platform. Tools: javap, jasm, javac. The life cycle of classes in JVM. Hooks in Java. File format *. class. Executing bytecode, stack frame. The instructions included in Java bytecode - writing classes, exception handling, synchronization, ways of calling methods. Methods of the representation of objects in Virtual Machine. Classification and algorithms of garbage collectors - reference counting, trading, Mark & Sweep and generational adaptive algorithms. The "train" and tricolor algorithm. Optimization of various parameters of garbage collectors using the example of Sun Spot. Cooperation Java – the external world - JNI. The NIO library in the context of automatic memory management. Objects reachability classes in Java - finalizers. Java in real-time systems. Just In Time Compilation – concepts, algorithms.
Overview of the course elements
The course is accompanied by laboratory classes. They are intended to consolidate the content extend the knowledge taught during lectures allowing to use it in a practical way. During the laboratory classes, students write their own simple language interpreters, provide for it a garbage collector (in a number of ways). Students learn the idea of classes instrumentation using bytecode manipulation libraries (such as BCEL). In the course of other assignments, students solve some problems related tp JNI and Just In Time compilation.
1. Specyfikacja Maszyny Wirtualnej Java http://java.sun.com/docs/books/jvms/