Lecture 14: Procedures, Memory, SSA, Instruction Selection
Continuing from Lecture 13
Compiling Advanced forms of Procedures
References
- Tiger book, chapters 6, 15
- Simon L. Peyton Jones, The Implementation of Functional Programming Languages, Prentice-Hall, 1987
- Efficient dynamic dispatch without virtual function tables: the SmallEiffel compiler (and the references in this paper)
Explicit Dynamic Memory Management
How to implement heap where data lives longer than procedures in which it is created?
Scala code:
References
- Donald Knuth. Fundamental Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89683-4. Section 2.5: Dynamic Storage Allocation, pp.435–456.
- Tiger book, Chapter 13
Static Single Assignment form of Programs
References
- Dragon book, Section 6.2.4
- Tiger book, Chapter 19
Instruction Selection
References
- Tiger book, Chapter 9
- Dragon book, Section 8.9
- BURS Automata Generation by T.Proebsting
Further EPFL Courses
- Software Analysis and Verification - data flow analysis, program verification, automated theorem proving
- Foundations of Software - type systems
- Advanced Compiler Construction - high-level language constructs, compiling functional programs, advanced analyses for compilation