AAA551: Programming Language Theory, 2026 Spring

AAA551: Programming Language Theory, 2026 Spring

Course Information

Course Materials

Grading

Please use the LMS for the attendance check and the submission of homework.

  • Homework: 80%
  • Attendance: 20%

Installation of Scala and sbt

Scala is a general-purpose programming language combining object-oriented and functional programming in one concise, high-level language. Scala’s static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

The interactive build tool sbt is built for Scala and Java projects.

Please download and install them using the following links:

Schedule

# Date Title PDFHomework
0 03/03 Course Overview
1 03/05 Basic Introduction to Scala ex01
Part 1: Semantics
2 03/10 Big-Step Operational Semantics
3 03/12 Small-Step Operational Semantics
4 03/17 CEK Machine
5 03/19 Denotational Semantics
6 03/24 Orderings, Lattices, and Fixpoints
7 03/26 Definitional Translation
8 03/31 Continuation-Passing Style
9 04/02 Link Operational and Denotational Semantics
10 04/07 Axiomatic Semantics
11 04/09 Systematic Program Proofs
12 04/14 Separation Logic (1)
13 04/16 Separation Logic (2)
Part 2: Type System
14 04/28 Simply-Typed Lambda Calculus
15 04/30 Type Soundness
16 05/05 Universal Types
17 05/07 Substructural Types
18 05/12 Effect Types
19 05/14 Trace Semantics
20 05/19 Trace Properties
21 05/21 Abstract Interpretation
22 05/26 Flow-Sensitive Type Analysis
23 05/28 Context-Sensitive Type Analysis
24 06/02 Curry–Howard Isomorphism
25 06/04 Existential Types
26 06/09 Dependent Types
27 06/11 Course Review