CS 510JIP Understanding Java Implementation - Winter 1998

Andrew Tolmach
email: apt@cs.pdx.edu
Office Hours: TuW 10-11 & by appt.

Course home page: http://www.cs.pdx.edu/~apt/cs510jip/cs510jip.html


As Java becomes increasingly popular as a general-purpose programming language, it is important to understand the key implementation technologies that support the language. This course is addressed to experienced programmers and system architects who want an in-depth understanding of how to design and optimize Java-based systems. The course will examine key aspects of Java "from the inside," with a focus on factors affecting performance and security. Alternative languages and implementation strategies will be considered throughout.


Learn how Java implementations work and how they might work better.


Basic familiarity with Java programming; compilers at the undergraduate level.

Format and Requirements

Primarily a reading and discussion course. Each student will perform a programming project or produce a written research report on some aspect of Java compilation covered by the course. If class size permits, students will be encouraged to make in-class presentations on their results.

The project or report will constitute the entire basis for the course grade.

Topics for projects and reports must be agreed upon between student and instructor by Feb. 12th at the latest. Projects and reports will be due on March 5th, i.e., at the next-to-last class.


No textbook is required; all necessary material is available for free on the web, or (in rare cases) will be handed out in class. The course web page will contain many useful pointers into this material.

If you wish to buy a book, the most useful is probably Lindholm and Yellin, The Java Virtual Machine Specification, Addison-Wesley, 1997. Note, however, that the text of this book is available for free on Sun's web site.

I know of two books that ``explain'' the material in Lindholm and Yellin:

Meyer and Downing, Java Virtual Machine, O'Reilly, 1997. (Not available on-line.)

Venners, Inside the Java Virtual Machine, to be published(?) by McGraw-Hill. (``Beta version'' currently available on line from their web site.)

All the software we use will also be available for free over the net. Projects can be done on your own machine or on the PSU Sun network, where some software will be pre-installed. Considerably more Java-related freeware is available for Unix systems than for MS OS's.

Course Topics

We will cover as many of these as we have time for!

tex2html_wrap_inline16 Java Language Environment and Virtual Machine Architecture

tex2html_wrap_inline16 Compiling for the JVM

tex2html_wrap_inline16 Internal implementation of the JVM

tex2html_wrap_inline16 Byte-code interpreters

tex2html_wrap_inline16 Just-in-time compilation

tex2html_wrap_inline16 Garbage collection

tex2html_wrap_inline16 Whole-program optimization methods

tex2html_wrap_inline16 Security for mobile code

tex2html_wrap_inline16 Coordinated distributed computing

Andrew P. Tolmach
Sun Jan 11 13:18:35 PST 1998