CSC362 2004S, Class 42: Evaluation and Wrapup Overview: * Evaluations * Administrivia * Thoughts on the class * Final thoughts Summarize and organize what we have learned this semester Things about the implementation of compilers: * The practical implementation of parsing was a lot harder than the theory would suggest * The theory of parsing * How and why to deal with ambiguous grammars * SLR, LR, LL parsing * The practice of parsing * We only do theory on small languages; Big languages present new challenges * E.g., ambiguity Things about the design of compilers: * Many stages * Lots of flexibility for the designer * How many components there are Things about machine architecture: * Organization of memory * Data movement * Designing a good intermediate language is hard. Never trust your CS prof to design one. Things about program design: * When you have many stages in the program, you need to design the early stages well or the later stages will be incredibly painful * Even when it is supposed to be "easy" to combine parts of a program, it can be difficult (+ practical experience in combining parts) General learning skills: * Dealing with groups Philosophical comments: * Boy, this stuff is a pain * Stuff that seems easy at the surface can be very very hard when you deal with all the details