Reasoning with function signatures
summary
Argues that assuming pure functions (no side effects) makes code predictable, reproducible and locally reasoned and shows a concrete model of a compiler as a function evolving from compile(string_view) -> vector<byte> into a richer CompilationResult with optional<byte[]> plus diagnostics: vector<string> and a CompilationOptions flag that, when set, returns dependencies: vector<filesystem::path>. Demonstrates optional output for ill-formed input and how signatures document behavior without implementation.
AI-written summary · about
chapters (5)
- 0:00The value of pure functions
- 1:04Modeling a compiler
- 2:30Refining return types
- 3:23Extending function interfaces
- 5:03Reasoning and communication
related talks
22mCompilers should get over themselves and respect semantic dependencies!
01h 47mFunctional C++
31mPyrosome: A Framework for Modular, Extensible, Equivalence-Preserving Compilati...
01h 01mA Soupçon of SFINAE
09mCompilers for nothing, executables for free!
19mPanel: Compilation Frameworks
01h 06mVerifying a compiler through equational means
21mSecurely Compiling F* Programs With IO and Then Linking Them Against Weakly-Typ...
