Welcome to CSC362.2002F * The subject matter of the class * The organization of the class * The parts of a compiler Welcome to Compilers * What is a compiler? + MF: A program that translates code into a "lower level" format. Friendlier to machines, less friendly to normal people. + NG: Error checking going on. + EA: May also improve the code. * What is a non-CS compiler? + AH: A person who takes a group of things and makes them into a single entity.a * Differences? + EB: Translates many programs into one language. Why are you studying compilers? * JK: Its fun and interesting. It's important to all software. * AP and EB: Trusts the advice of those older and (hopefully) wiser. * EA: Seems to combine love of OS and Architecture. * Anonymous: Required for the major * DB: Hopes will study virtual machines Why CS362 or CS223? * programming project Why CS362? * One of the best intersections of theory and practice.a * Learning how a compiler works imporves your code * Learn more about architectural issues and think more closely about what underlies our code * "Any large project includes its own programming language". + Now many languages touted as "easy to add to your large project": VB, LISP/Scheme, JavaScript, Tcl, ... How should we study compilers? * Build a compiler * Read some compilers * Study the theory Time for Boring Administrivia * Some slippage on due dates * Syllabus on Web is wrong * You're dealing with experimental software * It should be a fun class * Grading: Project 40%, Homework: 20%, Presentation: 10%, Final + other exams?: 30%. * Sam's nasty grading theory: correct is B. * Sam's nice grading theory: show up to 90%+ classes, participate, do most of the work, don't make things bad for your group members: No less than B-. * Don't cheat! * Please cite, but feel free to reuse. * Please talk to me about disabilities * Tell me when you're spending too much time on the class