CSC501

The Semantics of Programming Languages

Basics

Introduction
Mathematical Foundations
Grammars

Natural Semantics

Natural Semantics (Part 1)
Natural Semantics (Part 2)
Natural Semantics (Part 3)
Induction (Part 1)
Induction (Part 2)

Executable Specifications

Prolog Tutorial
State, Arithmetic Expressions
Boolean Expressions, Commands
Declarations, Type Systems
I/O, Block Structured Languages
Functions
Program Correctness
Pre- and Post-Conditions
Program Correctness and Iteration
Loop Invariants
Translational Semantics
Translation, Source and Target Semantics
Compiler Correctness

Model Theory

Elements of Model Theory

Review

Semester Review

Additional Resources

Prolog Notes
Specs and Proof Scores