3516ICT Programming Language Implementation (PLI)
2007 Semester 1

Triangle

Schedule

Week 1: Feb 26 - Mar 2:
Introduction to programming language implementation and to this course: interpreters and compilers, real and virtual machines, generic compiler architecture, intermediate program representations, C, Scheme, study, assessment.
Lecture 1
Tutorial 1
Week 2: Mar 5 - Mar 9:
Lexical analysis: tasks, regular expressions, finite automata, implementation, tools lex and flex.
Lecture 2
Tutorial 2
Week 3: Mar 12 - Mar 16:
Parsing I: Context-free grammars, context-free languages, ambiguous grammars, parse trees, EBNF, first and follow sets, and recursive descent parsing.
Lecture 3 (see also 2004's lecture: part 1 and part 2.)
Tutorial 3
Week 4: Mar 19 - Mar 23:
Parsing II: Bottom-up parsing techniques, parsing table construction, SLR(1) grammars, and tools yacc and bison.
Lecture 4 (see also 2004's lecture)
Tutorial 4
Week 5: Mar 26 - Mar 30:
Meta-circular Scheme interpreters, run-time environments.
Lecture 5
Tutorial 5
Assignment 1
Week 6: April 2 - Apr 6:
Semantic analysis I: Attributes and attribute grammars
Semantic analysis II: Data structures and algorithms: scope rules, name analysis, type inference and type checking
Lecture 6 (2004 lecture)
Lecture 7
Tutorial 6

Mid-semester break

Week 7: Apr 16 - Apr 20:
Run-time environments: Stack frames, procedures and parameters, static and dynamic links, etc.
Lecture 8 (see Figures 7.5 and 7.11) (see also 2004 lecture)
Tutorial 6 (cont.)
Tutorial 8
Louden, Chapter 7.

Assignment 1 due

Week 8: Apr 23 - Apr 27:
Run-time environments: Data representation, heap storage management, garbage collection.
Lecture 9
Tutorial 8 (cont).
Louden, Chapter 7 (cont.).
Week 9: April 30 - May 4:
Code generation I: Translation to intermediate code
Lecture 10
Tutorial 9
Assignment 2
Week 10: May 7 - May 11:
Code generation II: Translation to target machine code
Lecture 11
Tutorial 9 (cont.)
Week 11: May 14 - May 18:
Efficient interpretation, and compilation, in Scheme.
Lecture 7 (review)
Lecture 12
Tutorial 10
Week 12: May 21 - May 25:
Optimisation: TM description, TM simulator, TINY code generator and optimiser.
Lecture 13
Tutorial 11

Assignment 2 due

Week 13: May 28 - Jun 1:
Functional, object-oriented and concurrent languages. Conclusion: Case studies, review, exam preparation.
2005 examination questions
2006 examination questions

Study week - tutorial?

Examination


Last modified: $Date: 2008/01/25 02:21:46 $, by Rodney Topor