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… |