for the last 9 years, and more recently, working on projects sin Haskell • 2012 Talk at GoRuCo on, "Sensible Tes4ng" • 2015 OPLSS on, "Types, Logic, Seman4cs, and Verifica4on"
• Rather, scope is more mid-‐large size, web-‐ based applica4ons. • Achieving "high assurance" is something we should all be concerned with in so0ware!
proposi4on in the logic, there is a corresponding type • For each proof of a given proposi4on, there is a program of the corresponding type • For each way to simplify a proof, there is a corresponding way to evaluate a program From Proposi4ons as Types, by Philip Wadler [10]
Programs we would have thrown out in Ruby give us a great star4ng point for refactoring in Haskell. • Algebraic data types give us a good idea of the program domain. • Goal is finding a "sweet spot" of enough assurance offered by type system, while not inducing costs that are too high – Haskell fits the bill for us right now.
kinds of code-‐ injec4on a\acks • Return invalid HTML • Contain dead intra-‐applica4on links • Have mismatches between HTML forms and the fields expected by their handlers • Include client-‐side code that makes incorrect assump4ons about the "AJAX"-‐style services that the remote web server provides • A\empt invalid SQL queries h\p://plv.csail.mit.edu/ur/
hard, so we want to avoid it as far as possible. Dependent types are invaluable for this purpose." From Cer4fied Programming with Dependent Types by Adam Chlipala [2]
• We should all be thinking about verifica4on – evidence our systems work. • We should think of types (before?) tests! • Has implica4ons for agility of a so0ware system, not just life-‐or-‐death applica4ons.
Tomb A. High Assurance So0ware Development, Galois Inc. Retrieved July 7, 2015 from Galois: h\p://code.galois.com/paper/2010/HighAssuranceSo0wareDevelopment.pdf 2. Chlipala, A. Cer4fied Programming with Dependent Types 3. Chlipala, A. Ur/Web: A Simple Model for Programming the Web, Retrieved July 7, 2015 from Adam Chlipala's web site: h\p://adam.chlipala.net/papers/UrWebPOPL15/UrWebPOPL15.pdf 4. Chlipala, A. Ur: Sta4cally-‐Typed Metaprogramming with Type-‐Level Record Computa4on, Retrieved July 7, 2015 from Adam Chlipala's web site: h\p://adam.chlipala.net/papers/UrPLDI10/UrPLDI10.pdf 5. Constable, R. The Triumph of Types 6. Pierce, B. Types and Programming Languages, The MIT Press, 2002 7. Yorgey, B., Weirich S., et. Al., Giving Haskell a Promo4on 8. OPLSS 2015 9. Sanger, D. Gordon, R. Iran and 6 World Powers Reach Deal to Curb its Nuclear Plans. Retrieved July 14, 2015 from the NY Times 10. Wadler, P. Proposi4ons as Types. Version V10, November 2014