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):
- advanced program analysis and optimization techniques
- bytecode interpretation and virtual machines
- dynamic ("JIT") compilation
- memory management (garbage collection)
- thread management
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