ICVM/F03:
Course Schedule


Reload

This page shows the schedule for the course. Note that it has not yet been finished, and it will be updated several times during the course period. Sessions for which the planning is incomplete are marked with a smaller version of the following "under construction" image:

The numbers in the 'literature' column refer to the entries on the literature page.

Generally, there will be one session each week, at the following coordinates:

DayWednesday
Time12-15
RoomAud.D4, except that
week 6 we will be in
the R2 meeting room

The topic for each week is as follows:

Week Topic Literature
06-09
 
Overall activity plan for the first 4 weeks:
  • Reading the paper by Landin [ICVM.1]
  • Programming the SECD machine
  • Reading the papers by Reynolds [ICVM.4], [ICVM.5]
  • Programming the interpreters
  • Reading the lecture notes by Felleisen and Flatt (mostly Chap. 8), [ICVM.3]
 
06
5/02
  • Handout: The mechanical evaluation of expressions
  • Evaluator source code
[ICVM.1]
07
12/02
  • Handout: Definitional Interpreters for Higher-Order Programming Languages
  • Handout: Definitional Interpreters Revisited
  • Handout: Programming Languages and Lambda Calculi
[ICVM.3]
[ICVM.4]
[ICVM.5]
08
19/2
  • Fixed point operators (ex. 5 is related to this topic)
  • Continuation passing style (ex. 6 is related to this topic)
  • String parsing, an example used to illustrate continuation passing style and defunctionalization (see [ICVM.6]).
  • Handout: Call-by-Name, Call-by-Value and the λ-Calculus ([ICVM.7]).
[ICVM.6]
[ICVM.7]
09
26/2
Within the overall topic of From interpreter to compiler, the following areas were covered:
  • Code generation, based on Scheme macros
  • Quasi quote and unqoute
  • Factorization - expressing the common structure of an interpreter and a compiler
[ICVM.8]
10
5/3
  • Representation of recursion in interpreters
  • Analysis of the interpreters in the paper by Reynolds
 
11
12/3
  • One-pass translators
    • in continuation passing style
    • in monadic style
  • Short-cut evaluation
 
12
19/3
  • A New One-Pass Transformation into Monadic Normal Form ([ICVM.10])
  • A First-Order One-Pass CPS Transformation ([ICVM.11])
  • CPS Transformation of Beta-Redexes ([ICVM.12], covered only by a quick survey)
[ICVM.10]
[ICVM.11]
13
26/3
Lectures cancelled, so you have extra time to work on assignments :-)  
14
2/4
    Abstract machines for lambda languages with call/cc
  • Implementation strategies
  • CPS
  • 2nd class continuations
  • 1st class continuations
[ICVM.13]
15
9/4
  • From lambda calculus to object-orientation
  • An object-oriented interpreter
 
16
16/4
No lectures: Easter holiday  
17
23/4
 
18
30/4
  • From interpreter to generic language processor, with a small imperative language. Source code: imp.sml
  • The small object-oriented language st presented in week 15 (source code: st.sml) was covered in more depth by discussing some examples:
    • pgms.st - some example programs in st
    • ex1.sml - SML expressions for some other st programs
    • ex1-prog5.run - output running ex1.sml:prog5, which is the same as the last program in pgms.st
    • An extended description of the method illustrated by imp.sml can be found in RS-96-13. This extended version includes block structure, procedures, and subtyping.
 
19
7/5
No lectures: Open Day  
20
14/5
  • The lectures are based on: From Interpreter to Compiler and Virtual Machine: A Functional Derivation, RS-03-14, ([ICVM.14])
  • Helpful background information: A Functional Correspondence between Evaluators and Abstract Machines, RS-03-13
[ICVM.14]
 


Maintainer: Erik Ernst, eernst@daimi.au.dk.

This page was updated on 14-May-2003
URL - http://www.daimi.au.dk/ICVM/schedule.html