This course introduces two major components of system software. Peter Capon will discuss operating systems, and I will deal with compilers. In the limited time available, neither of us will be going into very much detail. I will assume some familiarity with ANSI C.
There are several compiler books on the reading list, and many more available in libraries and book-shops, ranging widely in difficulty and depth. If you want to buy a book, I suggest you look at several and pick the one that you find most helpful. Here are some other references that you may find useful:
comp.compilers FAQ includes a reading list about lex, yacc & compilers
lecture 1 | Introduction, Assemblers and Compilers |
lecture 2 | Lexical analysis - Lex |
lab 1 | Lex |
lecture 3 | Syntactic analysis - Yacc & Parse Trees |
lab 2 | Yacc & Parse Trees |
lecture 4 | Semantic analysis - Dictionaries |
lab 3 | Syntax-directed translation |
lecture 5 | Syntax-directed translation |
lab 4 | catch-up |
Each Compiler session will consist of a lab, or a lecture followed by
paper-and-pencil exercises. The exercises and labs will be used both for
reinforcement and for further exploration.
The description of the practicals & exercises, a list of common
flex/byacc/make errors and how to correct them, plus extra hints and any
corrections, can be found via URL
http://www.cs.man.ac.uk/~pjj/cs5031/index.html