CS 421

CS 421 - Progrmg Languages & Compilers

Spring 2025

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Progrmg Languages & CompilersCS421B331375LCD30930 - 1045 T R  0027/1025 Campus Instructional Facility Mattox Beckman
Progrmg Languages & CompilersCS421B431376LCD30930 - 1045 T R  0027/1025 Campus Instructional Facility Mattox Beckman
Progrmg Languages & CompilersCS421CSP68231PKG31530 - 1645 R  ARR Illini Center Mattox Beckman
Progrmg Languages & CompilersCS421CSP68231PKG3 -    Mattox Beckman
Progrmg Languages & CompilersCS421MC363756PKG31530 - 1645 F  ARR Illini Center Mattox Beckman
Progrmg Languages & CompilersCS421MC363756PKG3 -    Mattox Beckman
Progrmg Languages & CompilersCS421MC463757PKG4 -    Mattox Beckman
Progrmg Languages & CompilersCS421MC463757PKG41530 - 1645 F  ARR Illini Center Mattox 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: One of CS 233, CS 240, CS 340 or ECE 391; CS 374 or ECE 374; one of MATH 225, MATH 257, MATH 415, MATH 416, ASRM 406, or BIOE 210.

Text(s)

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

Required.

Last updated

2/17/2019by Elsa Gunter