Closing Words
Provide a context for the work we’ve done
Viva next term
Feedback

Road Map

Programming Language Design

Binding, Linking, Loading
Binding
the association of a value to an identifier
the value can be code or data
Wide spectrum of binding times
During program writing/construction
At compilation
Between compilation and execution
Just before, or during execution

Why support these?
The later the binding, the more flexible the programming system
Data not hard wired into system
Code constructed independently of other code
The earlier, the safer the system
Checks on compatibility can be performed early

Linking
Blend safety with flexibility
still want largely static type checking
but accept that we don’t know have the actual code right now
Build an intermediate representation
specifying what else is needed
At link time
verify that expectations are true (type check)
fix up all addresses
create a monolithic lump of code
If linking occurs at/just before execution…

Machine Architectures

Optimisation
Common sub-expression elimination  CSE
Loop unrolling
Partial redundancy elimination  PRE
Dead-code elimination
code never accessed, or result never used
Constant propagation and folding

Viva – Wednesday 25th April
9.00 Andrew Didsbury
9.15 Kyrre Kristianson
9.30 Martin Ritchie
9.45 Michael Davidson
10.00 Paul Gallagher
10.15 Richard Edwards
10.30 Roman Olejniszyn
10.45 Roy Symon
11.30 Sharon Moore
11.45 Steven Martin
12.00 Stuart Leitch
12.15 Tristan Fairbairn
12.30 Alan Torrance
12.45 Alexander Greig
1.45 Alastair Hutton
2.00 Kevan Bracken
2.15 Andrew McNeish
2.30 Christopher Mathie
2.45 Duncan Mason
3.45 Graeme Robb
4.00 Graham MacDonald
4.15 Jana Urban
4.30 Jonathan Paisley
4.45 Kathryn Larner
5.00 Kenneth Guffie

"Discuss the benefits and drawbacks..."
Discuss the benefits and drawbacks of a compiler that uses a register-based run-time organisation over a purely stack-based RTO.
Compare control- and data-flow analyses.  Discuss uses in the Tiger compiler.
Discuss how other subjects you have studied in the degree have had a bearing on this module.
Describe one advanced topic (you choose which) from Part II of the textbook - outlining the extensions that would be required to the compiler you have examined during the course.
Discuss issues involved in type checking.  Compare the Tiger language in this respect to others that you know about.

Finally
Thank you for trying out this new way of teaching/learning
We’ve covered a lot…
…and I hope that you understand the fundamentals more thoroughly this way
Keep exploring and keep speaking out…