The student will learn what a compiler is and how it works. Topics covered include: how to specify what a legal program is in a language (syntax); how to specify what a legal program does (semantics); how a computer uses these specifications to recognize a legal program and translate this program into the machine’s language. Students will develop a working compiler for a simple object-oriented programming language using an Object-Oriented approach, using C++, and the compiler construction tools lex and yacc. Note: For Computer Science Majors.