Layering: The Architecture of Programs
summary
Proposes a concrete layering mechanism that attaches metadata layers (units, provenance support sets, automatic differentiation as dual-number differentiation) to values and extends procedures with per-layer handlers; implements it by a small continuation‑passing Scheme interpreter with a layered object data type, a providence‑union combinator and signed values. Demonstrates a diode current computation (~1 mA at 0.6 V with Is ≈ 1e‑13 A and NIST constants) and factorial/fibonacci examples that return correct provenance sets. Works but kills tail recursion in the current implementation; continuation marks are suggested as a fix.
AI-written summary · about
chapters (13)
- 0:00Layering in program architecture
- 1:51Systems easy to change
- 4:43Electrical engineering program example
- 8:15Concept of layering
- 13:10Data and metadata with procedures
- 17:47Provenance in computations
- 21:17Testing with factorial and Fibonacci
- 23:04Objects versus generic procedures
- 25:56Implementing layering in interpreter
- 36:14Benefits and unsolved problems
- 38:04Tail recursion challenges
- 39:29Free and libre software
- 40:10Q&A
related talks
23mLayered and Object-Based Game Semantics
01h 24mProcedural Programming: It’s Back? It Never Went Away
01h 02mAdvanced Levelization Techniques (part 2 of 3)
51mStretching the Glasgow Haskell Compiler: Nourishing GHC with Domain-Driven De...
16mA metalanguage for multi-phase modularity
01h 00mAdvanced Levelization Techniques (part 3 of 3)
01h 02mProcedural Programming: It Never Went Away
52mParadigms Lost, Paradigms Regained: Programming with Objects and Functions and More
