Section notes: Week 14
CS 164, Fall 2005
General
- Questions on assignment 6? Optimizer?
- Linking, loading, Lisping
- Adding interfaces to MJ (a review)
- Next week: review for final (Dec 15)
Linking and loading
- What do linkers do?
- Static vs. dynamic linking
- Advantages of dynamic linking
- Dynamic linking and data segments
- Relocation tables and position-independent code
- Name-mangling and cross-language linking
- Link chains
- Managing multiple versions
- Ref: Linkers and Loaders (Levine)
- Ref:
The Inside Story on Shared Libraries and Dynamic Loading
(Beazley, Warde, and Cooke,
Computing in Science and Engineering vol 3, num 5)
Compiling closures
- Non-nested lifetimes and the problem of closures
- Run-time support for closures
- Functor objects in C++
- Ref: Lisp in Small Pieces
Adding interfaces to MJ
- Why interfaces (pedagogically and in real life)?
- Lexical implications
- Parsing interfaces
- Type-checking interfaces
- Representing interfaces at run time
- Compiling interfaces