CS690A
Seminar in Advanced Compiling and Programming Systems
or
``So you want to know how to make Java run fast''

Course description
Spring 1999

Instructor: Dr. Tony Hosking (hosking@cs.purdue.edu)
Meeting times: MWF 9:30-10:20, CS G066, but we may negotiate a time change
Credits: 3

This seminar course will focus on compiler and runtime principles and techniques needed to implement advanced object-oriented programming languages such as Java. Modern language features such as data abstraction, object orientation, garbage collection, dynamic loading, and threads offer new challenges to language implementors, if languages including such features are to continue to perform comparably to traditional languages. The course will cover current and recent research in programming language design and implementation, with readings taken from the research literature. Specific topics will include (among others):

The goal is for students to become familiar with developments in language implementation that have delivered languages such as Java. Such knowledge is currently in very high demand in industry - it will serve you well even if you do not plan to go on to do research in programming languages. The course is offered at the 600-level to indicate its place in the sequence after CS502.
Prerequisites:
CS502 or equivalent, or familiarity with programming language implementation techniques
Workload and Grading:
Participants will be expected to read 1-3 papers per week. One or more attendees will be responsible for presenting a 20-30 minute summary of each paper. Discussion of the papers will then follow. You should think about what you read and participate actively in class discussions. Just to be sure, 20% of the course grade will be based on your concise summary and discussion (no more than a page) of any 8 of the assigned papers, 10% on your participation in class, and 30% on your presentations. The remaining 40% of the course grade will be based on either a software project and writeup, or a research report, on an approved topic of your choosing. You are strongly encouraged to work in groups on the term project/report.

Antony Hosking
Tue Nov 24 11:25:45 EST 1998