~/talk

Flexible Instruction-Set Semantics via Abstract Monads

Talkat ICFP 2023 · 2023-09-04..09-09· [compilers-and-language-design]
links:none on file
links:none on file
links:none on file
links:none on file
links:none on file
links:none on file
slides:none on file

Claims a single Haskell-based core semantics, parameterized by a Risk5Machine type class over monads, supports testing, interactive proof, model checking and synthesis without a new DSL. Implementations run at 100K instructions/second and boot Linux via an IO instance. Proof work uses hs-to-coq with edit files to map 64-bit machine ints to Coq Z. Verification uses a free-monad WP interpretation to avoid heavyweight nondeterministic encodings. Artifacts and reproducible code are archived and evaluated.

AI-written summary · about

  1. 0:00Flexible RISC-V semantics intro
  2. 1:05Why RISC-V
  3. 3:19Monads and type classes
  4. 5:11RISC-V machine type class
  5. 7:20RISC-V spec in Haskell
  6. 10:11Testing with IO monad
  7. 11:38Theorem proving with HS-to
  8. 13:23Verified stack with Bedrock 2
  9. 14:06Right monad for weakest preconditions
  10. 16:38Free monads for weakest preconditions
  11. 17:41Memory model with HMC
  12. 18:46Model checking Verilog
  13. 21:58Sail DSL comparison
  14. 24:22Conclusion and limitations
  15. 25:26Q&A
~/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.