Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
OOVM 2002
[go: Go Back, main page]

Design and Implementation of Object-Oriented Virtual Machines

Spring 2002

[OOVM F02]

(Nice and up-to-date web page).


Description:

This course focuses on how to design and implement virtual machines for object oriented languages. First part of the course discusses the designs behind some of today's high performance virtual machines. A simple virtual machine is introduced as a platform for testing the implementation techniques covered by this part of the course. The second part of the course is project based: participants are expected to enhance or implement a virtual machine. The result is a report that describes the implementation and any experiences. To widen the perspective, virtual machines for functional languages will be contrasted to object-oriented virtual machines.
(This course was previously given as OOVM E00)


Teachers:

Lars Bak, 5342.226
Ulrik Pagh Schultz, phone 8942-5672, office 5342.225 (contact teacher)

Student presentations:

The students present a paper each week; papers are available for reference in electronic form

Classes:

Thursday 12-15, 5342.118

Litterature:

Handouts

Curriculum (pensum):

HTML

Project reports:

As a guidline, your project reports should be 10-15 pages in length, and describe all aspects of your projects: what your project is, your initial milestones, how the project evolved and why, the result (what can it do, what can't it do - evaluate your own work!), any benchmarks, etc.

Course program:

 

Date Description Material
7/2 Course introduction
Overview of the HotSpot virtual machine
(Slides: HTML or PDF
None
14/2 Dynamically typed languages
Smalltalk introduction
Introduction to the SOM virtual machine
(Slides from Lars: HTML or PDF, from Ulrik: PDF
Smalltalk Tutorial (HTML), Chapters 1-4
Efficient Implementation of the Smalltalk-80 System
21/2 Garbage collection
(Slides: HTML or PDF
Tenuring Policies for Generation-Based Storage Reclamation and 
Incremental Mature Garbage Collection Chapters 2 and 3
28/2 Object model
Byte codes
Interpreters
(Slides: HTML or PDF
Optimizing direct threaded code by selective inlining
Source/som/Interpreter.java
in SOMcore 
7/3 Dynamic compilation
Measuring performance
(Slides: HTML or PDF
Reconciling Responsiveness with Performance in Pure Object-Oriented Languages
14/3 Type feedback
Aggressive inlining
Deoptimization
(Slides: HTML or PDF
Debugging Optimized Code with Dynamic Deoptimization
21/3 Cartesian Product Algorithm, Selective Argument Specialization
Automatic Program Specialization for Java
Project descriptions are due!
(Slides: PDF
The Cartesian Product Algorithm
Selective Specialization for Object-Oriented Languages
Automatic Program Specialization for Java
28/3 Cancelled: Easter
4/4 Threading
Object locking
(Slides: HTML
Thin Locks: Featherweight Synchronization for Java
11/4 Project week 1 (invited lectures)
Mads Torgersen: Implementing genericity
Ulrik: SOM in Pervasive Computing 
Adding type parameterization to the Java language
Making the future safe for the past: Adding genericity to the Java language
18/4 Project week 2 (invited lectures)
Olivier Danvy: Functional programming and virtual machines
Implementation strategies for continuations
Formalizing Implementation Strategies for First-Class Continuations 
The ZINC experiment: an economical implementation of the ML language
25/4 Project week 3 (invited lectures)
Olivier Danvy: the dOvs virtual machine 
2/5 Project week 4 (invited lectures)
Erik Ernst: gbeta execution in a virtual machine 
Propagating Class and Method Combination
9/5 Lectures cancelled: ascension day 
16/5 Project presentations
Project reports are due!
23/5 Experiences and conclusion


page author: Ulrik Pagh Schultz