Computer Science
>
>

CSE 505 Programming Languages

Spring 2021

University of Washington

University of Washington's course develops rigorous tools to study the meaning of programs. It aims to improve formalism, proof skills, and precision in programming, while also discussing practical applications. It covers operational semantics, Hoare Logic, compiler correctness, and more.

Course Page

Overview

No data.

Prerequisites

No data.

Learning objectives

Develop tools to rigorously study what programs mean.

Benefits

  • Writing a PL-ish thing is inevitable
    • Extensible systems, rich data structures, domain-specific languages (DSLs)
  • Build skills with formalism and proof
    • Precision, expressiveness, communication, clarity, confidence
  • Become better programmers
    • Travel to understand where you’re from!

Approach

  • Develop the core of real languages
    • include distinguishing features, omit sugar
  • Start simple, extend w/ richer features
    • develop reasoning techniques in parallel
  • Discuss application to industrial PLs
    • implement and prove to connect theory with code

Subgoals

  • Develop tools for studying programs
    • structural induction, inference rules
  • Investigate core PL concepts
    • types, functions, scope, mutation, iteration
  • Learn how to use proof assistants
    • powerful tools with increasing adoption

Textbooks and other notes

No data

Other courses in Programming Languages

Courseware availability

Lecture slides and codes available at Lecture

No videos available

Homework available at Homework

Readings available at Lecture

Covered concepts