trivial/popl-2017/OUTLINE.md
2016-06-27 16:00:01 -04:00

1.4 KiB
Raw Blame History

Outline of paper

  • λ ∈ Σ
  • expand is NOT guaranteed to make well-typed terms; you can call it on any expr.
  • idea; values carry latent "type" information (but ya know, this is kind of just demonstrating that expand is useful)
  • (afterwards) add set! nevermind how \tau handles it ... here are rules for expand to handle it
  • note: OCaml is firm about maintaining a fast compiler, NOT a big standard library
  •   thats a totally reasonable separation of concerns/labor
    

TODO

  • use more RACKET, less math (@racket[...] for identifiers)

0 intro.scrbl

types, abstraction, syntax extensions, true refinement, other promises

1 background.scrbl

define types define macros (without the word 'macro')

  1. examples.scrbl

carefully explain 2 extensions state guarantees prove properties evaluations

  1. discussion.scrbl

limits of the extensions (need a value), suggestions to overcome limits (assertions, better analysis), even more extensions + implications

""" Our technique is implemented as a library of local transformations that compose to form a function @exact{$\elaborate$} defined over syntactically well-formed terms. Using the library is a one-line change for existing programs; however, the user may wish to remove type casts made redundant by the elaboration. """

  1. friends.scrbl

how to implement in

  • typed clojure
  • scala (macros or LMS)
  • javascript rust will be difficult
  1. ending