COMPSCI 450: Programming Language Translation 4-credit course with 4 lecture hours per week Course Coordinator: Gang-Ryung Uh Textbook(s) and Supplemental Material Compilers Principles, Techniques, and Tools, Aho and Lam and Sethi and Ullman, 2007. Catalog Description Theory and practice of formal language translation, experience with compiler construction tools under UNIX. Students work on significant projects. PREREQ: COMPSCI 253 and COMPSCI 342 and COMPSCI 354. Required Goals for the Course Successful students will be expected to: • understand all of the major phases of the compilation process • implement a compiler through a major project, divided into parts corresponding to phases of a compiler • learn SPARC assembly language to produce a SPARC assembly program as a compiler output Outcomes Addressed i. an ability to use current techniques, skills, and tools necessary for computing practice j. an ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices k. an ability to apply design and development principles in the construction of software systems of varying complexity Outcomes Assessed: i and j Topics Covered Lexical analysis Syntax analysis Syntax-directed translation Type checking Code generation Run-time environments Code optimization Grading A letter grade is assigned to each student at the end of the course based on the numerical scores of these activities: Activity Weight Programming Assignments 50% First Exam 15% Second Exam 15% Final 20% Curriculum Category Content (Credits) Area Core Advanced Algorithms 1 Software Design Computer Architecture 1 Data Structures 1 Programming Languages 1