This is the archived website of SI 413 from the Fall 2012 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.
List the programming languages you have used in the past, and for each one name some distinguishing characteristics. Think about why anyone would choose one language over another. What features does it have? What niche does it fill?
What role does the symbol table play in compliation? What information is stored in it?
For each of these main steps in the compilation process, explain whether that step is always reversible. For example, the scanning phase reads in source code and produces a token stream. Is it always possible to reverse this process and produce the original source code from the token stream? Briefly explain why or why not.
Give an example of Java code that generates each of the following kinds of errors: