performance evaluation for gradual typing
play

Performance Evaluation for Gradual Typing Asumu Takikawa Daniel - PowerPoint PPT Presentation

Performance Evaluation for Gradual Typing Asumu Takikawa Daniel Feltey *Ben Greenman Max S. New Jan Vitek Matthias Felleisen 9 years of sound gradual typing Gradual Typing for Functional Languages, Jeremy Siek & Walid Taha. SFP '06


  1. Performance Evaluation for Gradual Typing Asumu Takikawa Daniel Feltey *Ben Greenman Max S. New Jan Vitek Matthias Felleisen

  2. 9 years of sound gradual typing Gradual Typing for Functional Languages, Jeremy Siek & Walid Taha. SFP '06 Interlanguage Migration: From Scripts to Programs, Sam Tobin-Hochstadt & Matthias Felleisen. OOPSLA '06

  3. 9 years of sound gradual typing Micro Macro

  4. Micro - focus on single-module programs - type system catches incompatibilities - all values implicitly type DYN

  5. Macro - multi-module, untyped programs - eliminate a class of errors - each module fully typed/untyped

  6. 9 years of sound gradual typing SFP'06 ICFP'09 POPL'10 ML'07 ESOP'12 ICFP'14 POPL'15 ECOOP'07 ESOP'09 ECOOP'10 POPL'12 DLS'13 ECOOP'15 POPL'07 DLS'08 SAC'09 ECOOP'11 SFP'12 OOPSLA'14 OOPSLA'06 STOP'09 POPL'10 ESOP'13 ECOOP'08 OOPSLA'09 OOPSLA'12 SFP'07 POPL'08 FOOL'10 PLDI'11 ECOOP'15 Over 50 publications since 2006 http://github.com/samth/gradual-typing-bib

  7. Performance?

  8. Performance? 4x 10x 22x 33x

  9. 9 years of publications and nobody publishes evaluations because performance sucks

  10. Gradual Typing ... is practical?

  11. Gradual Typing ... is practical?

  12. Performance? Soundness?

  13. Types without Soundness - catch "obvious" logical errors - serve as documentation - may not be correct, or complete

  14. Types + Soundness ! eliminate a class of errors from typed code typed

  15. Every typed language... Rests on an untyped runtime

  16. Option 1: Trusted Computing Base (Bogus)

  17. Option 2: Check Everything (Safe & very slow)

  18. Types + Soundness (revised) eliminate a class of errors from typed code identify errors at typed-untyped boundaries

  19. Option 1: Trusted Computing Base Option 2: Check Everything

  20. The Reality of (Macro) Gradual Typing

  21. The Reality of (Macro) Gradual Typing

  22. The Reality of (Macro) Gradual Typing

  23. The Reality of (Macro) Gradual Typing

  24. The Reality of (Macro) Gradual Typing

  25. The Reality of (Macro) Gradual Typing

  26. The Reality of (Macro) Gradual Typing

  27. Recap - Gradual type systems have "bad" performance - Type soundness is imperative - Issue: typed-untyped boundaries

  28. The Reality of (Macro) Gradual Typing

  29. The Reality of (Macro) Gradual Typing

  30. The Reality of (Macro) Gradual Typing ?

  31. Proposal I. Define "boundary" II. Run the entire lattice III. Define "performant" IV. Report the % of performant variations

  32. To be continued... If you agree , then use our framework If you disagree , then propose an alternative Bottom line: no more "footnotes" on performance!

  33. How to Scale? - Hire a cluster - Random sampling - Offer fewer configurations - Tools to identify / exclude configs.

  34. Gradual Typing: Promise Sound Expressive Performant

  35. Boundaries Integer , please Here! Thanks! 2

  36. Boundaries Integer , please Here! TYPE ERROR lol

  37. Boundaries List of Integer , please Here! Thanks! [ 2 , 2 , 2 ]

  38. Boundaries Function , please Use it well ... +

  39. Reinheitsgebot 1 barrel of wine + 1 teaspoon of sewage = 1 barrel of sewage

Recommend


More recommend