Prerequisites: CMSC 330 and programming experience in C or C++. An examination of the formal translation of programming languages, syntax, and semantics. The goal is to write programs that are constructed using program generators. Topics include evaluation of finite-state grammars and recognizers; context-free parsing techniques, such as recursive descent, precedence, LL(K), LR(K), and SLR(K); and improvement and generation of machine-independent code and syntax-directed translation schema. Programming projects that implement parts of a compiler are required. Enrollment Requirements: Prerequisites - CMSC 330 and programming experience in C or C++.
Spring 2020, Fall 2019, Spring 2019, Fall 2018, Spring 2018