2000 character limit reached
Seamless, Correct, and Generic Programming over Serialised Data (2310.13441v2)
Published 20 Oct 2023 in cs.PL
Abstract: In typed functional languages, one can typically only manipulate data in a type-safe manner if it first has been deserialised into an in-memory tree represented as a graph of nodes-as-structs and subterms-as-pointers. We demonstrate how we can use QTT as implemented in \idris{} to define a small universe of serialised datatypes, and provide generic programs allowing users to process values stored contiguously in buffers. Our approach allows implementors to prove the full functional correctness by construction of the IO functions processing the data stored in the buffer.
- Charguéraud, A. (2023) A Modern Eye on Separation Logic for Sequential Programs. University of Strasbourg.
- Charguéraud, A. (2023) Separation Logic Foundations. vol. 6 of Software Foundations. Electronic textbook. Version 1.6.
- Idris Community. (2023) Katla – LaTeX & HTML code listing generator for Idris 2. https://github.com/idris-community/katla.
- McBride, C. (2016) I got plenty o’ nuttin’. A List of Successes That Can Change the World - Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday. Springer. pp. 207–233.
- Mendel-Gleason, G. (2012) Types and verification for infinite state systems. Ph.D. thesis. Dublin City University.