PLT Redex:
a semantics engineer’s toolkit
Robby Findler & Casey Klein University of Chicago
1
PLT Redex: a semantics engineers toolkit Robby Findler & Casey - - PowerPoint PPT Presentation
PLT Redex: a semantics engineers toolkit Robby Findler & Casey Klein University of Chicago 1 Critical Infrastructure 2 Heavy-duty Tools 3 Simpler Jobs 4 Mismatched Tools 5 The Right Tool for the Job 6 Sometimes, Overhead
a semantics engineer’s toolkit
Robby Findler & Casey Klein University of Chicago
1Critical Infrastructure
2Heavy-duty Tools
3Simpler Jobs
4Mismatched Tools
5The Right Tool for the Job
6Sometimes, Overhead Matters
7Isabelle, HOL, Coq, Twelf, ... PLT Redex
8PLT Redex
EDSL Tools define-language traces, stepper reduction-relation typesetting define-metafunction test suites
9PLT Redex
EDSL Tools define-language traces, stepper reduction-relation typesetting define-metafunction test suites
10Target, i
(define-language lang (e (e e ...) x v) (v number ( (x ...) e) + *) (x (variable-except + *)) (E hole (v ... E e ...)))
11Target, ii
(define red (reduction-relation lang (--> (in-hole E (+ number ...)) (in-hole E ,(apply + (term (number ...)))) +) (--> (in-hole E (* number ...)) (in-hole E ,(apply * (term (number ...)))) *) (--> (in-hole E (( (x ...) e) v ...)) (in-hole E (subst-n ((x v) ... e))) v)))
12Executable
(traces lang red (term ((( (x) (x x)) ( (x) (x x))) (* (+ 1 2) (+ 3 4)))))
13For fun
(define-language lang2 (e (e e ...) x v) (v number ( (x ...) e) + *) (x (variable-except + *)) (E hole (e ... E e ...)))
14For fun
(traces lang2 red2 (term ((( (x) (x x)) ( (x) (x x))) (* (+ 1 2) (+ 3 4)))))
15http://www.cs.uchicago.edu/~robby/plt-redex/
16