CS134b
Compiler Design Laboratory, 2002
Instructor:
Jason Hickey
(
yapper.org
)
TAs:
Justin Smith
,
Suleyman Gokyigit
,
Adam Granicz
Caltech Computer Science Department
Overview and administration
Text:
OCaml book
Style:
Notes on programming style
(from Cornell CS412)
Last year's lecture notes
.
Mail lists
cs134-class@metaprl.org
[
web archive
] (announce list)
cs134-labs@metaprl.org
[
web archive
] (lab discussion)
cs134-cvs@metaprl.org
[
web archive
] (CVS messages)
Lectures
Jan 7:
Course intro
[
slides.ps.gz
] [
handouts.pdf
] [
handouts.ps.gz
]
General ocaml intro
Jan 9:
type definitions and unions\
Jan 11:
modules
[
set.ml
,
setl.mli
,
setm.ml
,
main.ml
]
Jan 13,15:
lexing and parsing
Micro-Java [
ast.ml
,
parse.mly,
lex.mll
,
lex.mli
,
eval.ml
,
eval.mli
,
test.ml
]
Jan 25:
parsing guidelines
[handouts.pdf]
Jan 28:
semantic analysis
[
handouts.pdf
]
Class and interface representation
[
handouts2.pdf
]
Classes and interfaces
[
handouts3.pdf
]
Feb 8:
CPS conversion
[
handouts1.pdf
]
Closure conversion I
[
handouts2.pdf
]
Closure conversion II
[
handouts3.pdf
]
Optimization
Dead-code elimination
[
handouts1.pdf
]
Function inlining, constant folding, and CSE
[
handouts2.pdf
]
Loop optimizations
[
handouts1.pdf
]
Alias analysis
[
handouts2.pdf
]
Backend
Code generation
[
handouts1.pdf
]
Liveness analysis
[
handouts1.pdf
]
Register allocation
[
handouts2.pdf
]
Garbage collection
[
handouts1.pdf
]
Garbage collection
[
handouts2.pdf
]
Labs
Lab 1, due Jan 18:
splay trees
[
lab1.ps.gz
]
Lab 2, due Jan 28:
parsing and AST generation
[
lab1.ps.gz
]
Lab 3, due Feb 18:
semantic analysis
Lab 4, due Mar 6:
CPS, closure conversion
Lab 5, due Mar 20:
Code generation, register allocation
Other resources
You can download OCaml documentation and binaries for Linux, Windows, and Mac at
ftp.inria.fr/lang/caml-light
.
OCaml 3.04 Reference Manual
[
refman.ps.gz
].
OCaml
source
,
RPM
,
gcc-2.96-patch
.
RPMs for
RedHat 6.2
,
RedHat 7.2
,
Mandrake 7.2
,
Mandrake 8.0
.
Mac OS9
source
,
binary
.
Mac OSX
binary1
,
binary2
,
notes
.
Windows
exe
.
The CVS web site is at
www.cvshome.org
.
The Cons web site is at
www.dsmit.com/cons
.
If you are using Windows, you may want to try using
Cygwin32
.
Pentium Resources
Intel Architecture Reference Manual
Intel Instruction Set Reference Manual
Intel Architecture Software Developers Manual
Intel Architecture Optimization Manual