Webs and Flow-Directed Well-Typedness Preserving Program Transformations
summary
Defines webs as connected components of a bipartite function‑call graph and ships a web-centric IR that annotates every function, call, and arrow type so rewrites operate over entire webs. Implements flow-directed transforms (dead-parameter elimination, uncurrying, defunctionalization) driven by those annotations, uses constraint collection plus a union‑find inference to merge web ids, and adds a lightweight type-based unification check that preserves well‑typedness; experiments show precision close to CFA and artifacts are available.
AI-written summary · about
chapters (8)
- 0:00Webs and flow-directed transformations
- 1:00Flow-directed program transformations
- 2:51Webs as program graph components
- 4:14Dead parameter elimination with webs
- 5:36Challenges in finding webs efficiently
- 6:39Type system limits in flow analysis
- 7:41Type-based web annotations
- 8:23Web identifier inference and merging
related talks
16mBeyond Relooper: Recursive Translation of Unstructured Control Flow to Structu…
28mType-directed Program Transformation for Constant-Time Enforcement
01h 05mAll the Languages Together
56mOn Type-Based Techniques for Program Manipulation
24mA Big-Step Compositional Continuation-Passing Semantics for WebAssembly
29mA Flow-Insensitive-Complete Program Representation
17mLet It Flow: A Formally Verified Compilation Framework for Asynchronous Dataflow
22mWhy the Ultimate Web Framework Will be a Language (DSL)
