Computer Science

Algorithmic Languages and Compilers

Algorithmic Languages and Compilers
Formal description of algorithmic languages and techniques used in their compilation: semantics, ambiguities, procedures, replication, iteration, recursion.
 Hours3.0 Credit, 3.0 Lecture, 0.0 Lab
 PrerequisitesC S 340
 NoteStudents are allowed only 1 retake of C S 431. This includes students who have failed or withdrawn (received a "W" grade). If after 1 retake, a student needs to retake the course again, the student must wait 1 semester/term before being allowed to take any C S course and must follow the petition process at This policy does not apply to classes dropped before the add/drop deadline. Petitions for exceptions to the policy can be completed at
 ProgramsContaining C S 431
Course Outcomes: 

Write a compiler

Implement a fully functional compiler for a subset of the Java language that targets an embedded microprocess.

Use interesting data types and algorithms in a large program

Apply patterns and common data structures to compiler constructrion including tree traversal, graph algorithms, and proof systems.

Apply techniques from compiler construction to other problem

Students are able to synthesis algorithms and techniques from compiler constructor to other problem domains.

Mental model of compilation

Students have a sound mental model of how an abstract high level language is systematically transformed into a low-level machine langauge or byte code. Students are able to use that understanding to write better application code.