CPSC 5100: Theory of Computer Programming Languages

Graduate course, University of Tennessee at Chattanooga, Computer Science and Engineering, 2025

This graduate-level course examines the theory and design of modern programming languages, connecting formal foundations to practical language use. Students study how syntax, semantics, and type systems shape expressiveness, safety, and implementation, while gaining experience with multiple programming paradigms and core ideas in interpreters and compilers. Key topics include:

  • Formal languages and language classification
  • Context-free grammars and top-down parsing (FIRST/FOLLOW sets, syntax trees)
  • Bottom-up parsing, shift-reduce methods, and SLR/LR/LALR parsing
  • Logic programming with Prolog, including tracing, cut, and basic compiler ideas
  • Type systems, including static vs dynamic typing, type safety, polymorphism, and generics
  • Functional programming with Scheme or Racket, higher-order functions, closures, and recursion patterns
  • Abstract data types, object-oriented foundations, and basic static analysis for object-oriented languages
  • Lambda calculus, substitution, evaluation strategies, and its connection to language semantics

The course combines mathematical rigor with illustrative programming examples, language case studies, and implementation-focused assignments. Graduate students complete additional work that emphasizes critical analysis of language features, deeper engagement with theoretical models, and research-oriented written reporting.