COMP 150 - Implementation of Modern Programming Languages

Spring 2006
Tufts University Computer Science

 

Class information
 

Time: Tuesday, Thursday -- 4:30pm to 5:45pm
Location: Halligan Hall 127 (conference room)

Instructor: Sam Guyer
Office hours: Wednesdays 2pm - 3pm
Location: Halligan Hall 004 (extension)

Mailing list: https://www.eecs.tufts.edu/mailman/listinfo/comp150-ipl

Related conferences:
[CGO'07 | LCTES'07 | MICRO'07 | PACT'07 | PLDI'06 | PLDI'07 | POPL'07 ]

Important dates
     
Reading schedule
 

Lectures:
Lecture 1
Lecture 2

Papers: a list of papers

  • January 28, 2007 -- ATOM -- presented by Sam
  • January 30, 2007 -- valgrind -- presented by Derrick
  • February 1, 2007 -- Dynamo -- presented by Brandon
  • February 6, 2007 -- DynamoRIO -- presented by Chris
  • February 8, 2007 -- No class -- Think about projects!
  • February 13, 2007 -- Program shepherding -- presented by Parker
  • February 15, 2007 -- Pin -- presented by Josh
  • February 20, 2007 -- ?? -- presented by John
  • Projects
     

    More information coming soon...

    Systems:

  • JikesRVM
  • Sun HotSpot
  • Pin
  • Valgrind
  • DynamoRIO
  • Bochs -- IA32 emulator.
  • Course work
     

    Course work will consist of three major components: reading and discussing papers in class, presenting one or two papers and leading the discussion, and working on a programming project.

    When it's your turn to present a paper, I want you to prepare a 20 minute talk describing the work. I'll tell you more about what I expect from these talks, but the basic idea is to describe the work and then get the discussion started. You should include a short list of discussion questions or issues at the end of the talk.

    When it's not your turn to present, read the paper and write a short critique, including: (a) one-paragraph overview of the main ideas, (b) paragraph describing the best things about the paper, and (c) paragraph describing the problems or issues with the paper

    Description
         

    This course covers a variety of topics in the implementation of modern programming languages, including: virtual machines, dynamic and just-in-time compilers, binary translators, object-oriented languages and run-time systems. Students will read a variety of research papers in these areas, from important landmark papers to recent work and new frontiers. The format of the class will include some lecture, but will have a substantial discussion component. Outside work will focus on programming projects using real virtual machines or binary translators -- students will either choose from a list of predefined projects, or optionally define their own project.