Next: Module 8: Code Optimisation
Up: course_outline
Previous: Module 6: Run-time Environments
No. of lectures : 10
Topics Covered
- Simple Code generation for expressions -- operand descriptors and the
handling of partial results. Code generation algorithm
for a simple machine architecture like Intel 8086.
- Issues in efficient code
generation -- instruction costs, register utilization and
evaluation order. The Sethi-Ullman algorithm.
- Optimal code generation for expression trees -- The machine
model, instruction costs. Cover of an expression tree. The
Aho-Johnson dynamic programming algorithm for optimal code
generation.
Objectives
At the conclusion of the module, the student should be able to :
Understand the role of operand descriptors in the
process of code generation,
- Understand the techniques for handling partial results
in unoptimized code,
- Understand the importance of and the issues involved in
generating optimal code for expressions.
- Understand the assumptions behind Sethi-Ullman algorithm - the
expressions considered, the machine model and the the cost measure of
the code generated.
- Understand Sethi-Ullman algorithm, especially the influence of register requirements on the optimal
evaluation order for an expression.
- Understand the proof of optimality and complexity of the algorithm.
- Understand the assumptions behind Aho-Johnson algorithm.
- Understand Aho-Johnson algorithm along with its optimality
proof and complexity.
Next: Module 8: Code Optimisation
Up: course_outline
Previous: Module 6: Run-time Environments
Amitabha Sanyal
2000-12-07