Semantics Engineering with PLT Redex
The first half of the course will present an overview of operational semantics (specifically context-sensitive rewriting semantics) and PLT Redex. It will cover the basic mathematics behind operational semantics as well as basic properties that semantics should have and how they are used.
In the second half of the course, students will be required to find a paper from a programming languages conference that models some aspect of a programming language that interests them, implement the model from the paper, test it using Redex's automatic test suite generation support, and give a presentation on the paper and their model, or to do the same for a board game (theorems to test to be negotiated, at least to include termination properties of the game).
|Meeting||Tech L361; MF 2-4pm|
|Text||Semantics Engineering with PLT Redex by Felleisen, Findler, and Flatt (awaiting publication; readings from the text will be given to students in class)|
|Software||PLT Redex (distributed with PLT Scheme).|
Come up with 5 legal boards and, for each of those boards, one illegal move and one legal move (ie, a total of 15 instances of G).
(G (B ... (B D ...) ... color)) ; Game state
(B (HB HB)) ;; white pieces, then black pieces
(HB (C ...)) ;; one C for each checker
(C N home bar) ;; where the checker currently is
(D 1 2 3 4 5 6) ;; die rolls
(color b w))