plt redex
play

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


  1. PLT Redex: a semantics engineer’s toolkit Robby Findler & Casey Klein University of Chicago 1

  2. Critical Infrastructure 2

  3. Heavy-duty Tools 3

  4. Simpler Jobs 4

  5. Mismatched Tools 5

  6. The Right Tool for the Job 6

  7. Sometimes, Overhead Matters 7

  8. Isabelle, HOL, Coq, Twelf, ... PLT Redex 8

  9. PLT Redex EDSL Tools define-language traces, stepper reduction-relation typesetting define-metafunction test suites 9

  10. PLT Redex EDSL Tools define-language traces, stepper reduction-relation typesetting define-metafunction test suites 10

  11. Target, i (define-language lang (e (e e ...) x v) (v number ( � (x ...) e) + *) (x (variable-except � + *)) (E hole (v ... E e ...))) 11

  12. Target, 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))) 12

  13. Executable (traces lang red (term ((( � (x) (x x)) ( � (x) (x x))) (* (+ 1 2) (+ 3 4))))) 13

  14. For fun (define-language lang2 (e (e e ...) x v) (v number ( � (x ...) e) + *) (x (variable-except � + *)) (E hole (e ... E e ...))) 14

  15. For fun (traces lang2 red2 (term ((( � (x) (x x)) ( � (x) (x x))) (* (+ 1 2) (+ 3 4))))) 15

  16. http://www.cs.uchicago.edu/~robby/plt-redex/ 16

More recommend