CS 421 - Progrmg Languages & Compilers

Summer 2021

Progrmg Languages & CompilersCS421ON237194ONL4 -    Mattox Alan Beckman
Progrmg Languages & CompilersCS421P330792OLC3 -    Mattox Alan Beckman
Progrmg Languages & CompilersCS421P430794OLC4 -    Mattox Alan Beckman

Official Description

Structure of programming languages and their implementation. Basic language design principles; abstract data types; functional languages; type systems; object-oriented languages. Basics of lexing, parsing, syntax-directed translation, semantic analysis, and code generation. Course Information: 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 233 or CS 240; CS 374; one of MATH 225, MATH 415, MATH 416, ASRM 406.


Varies by semester.

Learning Goals

Learn to program in a functional programming language (2)
Understand the evaluation of programs in a functional programming laguage (1), (2), (6)
Be able to write a type checker / type inferencer given a formal type system (1), (2), (6)
Be able to write a lexer, and a parser using recursive-descent parsing, or a parser-generator. (1), (2), (6)
Program translation: be able to write a syntax-directed translator from abstract syntax to intermediate representations (1), (2), (6)
Recognize and use major methods of specification of dynamic semantics (1), (2), (6)
Write a interpreter based on a formal operational semantics of the language (1), (2), (6)

Topic List

Functional Programming
Lexing and Parsing
Typing and Type Systems
Program Translation
Specifcation Techniques for Dynamic Semantics

Required, Elective, or Selected Elective


Last updated

2/17/2019by Elsa Gunter