We will cover:
-
Lexing and parsing; LALR parser generators.
-
Abstract syntax trees; operations on trees; compiler as
sequence of phases operating on abstract syntax trees.
-
Static Analysis; data flow and control flow analyses; type checking.
-
Code generation; java bytecode.
As homeworks, we will be doing some of the labs from the text.
These use java, eclipse and some other tools:
-
ant (comes with eclipse)
-
flex (a scanner generator, similar to lex)
-
cup (an LALR parser generator, similar to yacc)
-
jasmin (an assembler for java virtual machine language)
If you prefer not to use eclipse, you can install apache ant and run ant directly from the command line.