General Information

The Java programming language has impacted almost every aspect of computer science. The center-piece of this platform is the Java Virtual Machine (JVM), a virtual machine that has been proclaimed as the universal, machine-independent runtime environment that will define the future of distributed computing. Will JVM realize its hype and deliver on its promises? Is it capable of meeting the performance and scalability requirements? Has it been designed in a principled fashion so as to facilitate its implementation in both traditional and non-traditional settings? Are there any subtle interactions between the key features of the platform that require complicated solutions? Are there alternative designs that are substantially cleaner? These are some of the questions that are yet to answered regarding this influential piece of technology.

This seminar is a year-long research forum set up for students and faculty who are interested in understanding the internals of the Java Virtual Machine and study its strengths and weaknesses. In the fall, our goal is to obtain a clear understanding of the important issues in the design of the Java Virtual Machine and to identify opportunities for dramatically improving the start-of-the-art of virtual machine implementation. In the spring semester, we will build upon the insights drawn from this process to initiate research projects relating to the design and implementation of virtual machines.

The format of the seminar will be

  • thorough research of each topic (including looking at the relevant JVM source code and related books, papers, and documentations)
  • weekly presentation and discussion
  • prepare the lecture notes
  • compile and discuss a list of related research problems
  • This seminar requires a significant amount of work, but since it is not designed as a course, students will not obtain any course credits for their participation. However, the students may set up a "directed reading" course with one of the instructors (the reading course is numbered as cs480a for undergraduate students and cs820a for graduate students) and then treat the work relating to the seminar as part of the reading course workload. Each seminar attendee is required to make a presentation and also actively participate in all the discussions. In general, this includes picking a subject, reading related book chapters, finding related resources on the web, picking related online docs, papers, and tools, summarizing the major research problems, making the presentation, and preparing the final lecture notes.

    Here is the current schedule of the seminar.


    Copyright (c) 1999, Arvind Krishnamurthy, Christopher League, and Zhong Shao, Dept. of Computer Science, Yale University. This home page is always under construction.