Apr 19, 2024  
OHIO University Graduate Catalog 2020-21 
    
OHIO University Graduate Catalog 2020-21 [Archived Catalog]

Add to Portfolio (opens a new window)

CS 5100 - Introduction to Formal Languages and Compilers


A course on formal languages theory and compilers. Topics may include, but are not limited to: regular expressions; finite automata; context-free grammars; predictive parsing; LR parsing; abstract syntax; type systems and type-checking; stack layout and activation records; intermediate representations; control-flow graphs; static-single assignment (SSA) form; dataflow/liveness analysis; register allocation; garbage collection/runtimes; the LLVM compiler infrastructure. Over the course of the semester, students will implement a compiler for a small imperative programming language, targeting an intermediate representation such as LLVM. This course involves a significant amount of programming.

Requisites:
Credit Hours: 3
Repeat/Retake Information: May not be retaken.
Lecture/Lab Hours: 3.0 lecture
Grades: Eligible Grades: A-F,WP,WF,WN,FN,AU,I
Learning Outcomes:
  • Students will be able to determine whether a given language is recognizable (e.g., by a regular expression, deterministic finite automaton, or context-free grammar).
  • Students will be able to construct a finite state machine to recognize a given language.
  • Students will be able to apply computer science theory to determine whether a given grammar is parseable by recursive descent.
  • Students will be able to appraise the tradeoffs, in terms of asymptotic complexity and precision, of distinct algorithms used in compiler construction (e.g., for garbage collection).
  • Students will be able to construct a compiler, over the course of a series of course assignments, for a small programming language.



Add to Portfolio (opens a new window)