~/talk

You Got Your Idris in My C++! A First Look at Denotational Design

Talkat Open Source Bridge 2015 · 2015-06-23..06-26· [rust, design-collaboration]
slides:none on file

Argues that designing meanings in Idris and then translating to C++11 yields tighter, simpler APIs and verifiable invariants. Shows concrete tooling (Idris REPL, Boost optional), implements length-indexed vectors and an addition proof that compiles as a proof and rejects broken implementations, and rethinks an audio API as time→loudness functions translated into C++ templates. Outcomes: worked examples, machine-checked proofs for properties, and practical C++ patterns—useful if wanting formal checks without abandoning C++/Java/Agda workflows.

AI-written summary · about

  1. 0:00Introduction
  2. 1:58How can we sneak the fun languages in
  3. 4:05What is Denotational Design
  4. 4:45Haskell
  5. 5:28Idris
  6. 6:01Idris Example
  7. 6:39Dependent Types
  8. 7:25Dependent Values
  9. 12:23Natural Numbers
  10. 12:56Syntax
  11. 14:39Proofs
  12. 16:45Program Proof
  13. 17:30Review
  14. 20:05Base Case
  15. 22:55Inductive Case
  16. 27:26Applying Denotational Design
  17. 28:54C API Example
  18. 31:19What is an Idris
  19. 37:27Happy Warm Feelings
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.