Dimensional Type Systems and Deterministic Memory Management: Design-Time Semantic Preservation in Native Compilation
This work addresses the challenge of improving compilation efficiency and reliability for developers by providing design-time diagnostics and optimizations, though it appears incremental as it builds on existing type systems and memory management concepts.
The paper tackles the problem of enabling design-time semantic preservation in native compilation by introducing a framework that jointly resolves numeric representation selection and deterministic memory management through dimensional type annotations and coeffect properties. The result is a system where dimensional inference is decidable in polynomial time, complete, and principal, and escape analysis maps value lifetimes to verified allocation strategies, with implications for auto-differentiation.
We present a compilation framework in which dimensional type annotations persist through multi-stage MLIR lowering, enabling the compiler to jointly resolve numeric representation selection and deterministic memory management as coeffect properties of a single program semantic graph (PSG). Dimensional inference determines value ranges; value ranges determine representation selection; representation selection determines word width and memory footprint; and memory footprint, combined with escape classification, determines allocation strategy and cross-target transfer fidelity. The Dimensional Type System (DTS) extends Hindley-Milner unification with constraints drawn from finitely generated abelian groups, yielding inference that is decidable in polynomial time, complete, and principal. Where conventional systems erase dimensional annotations before code generation, DTS carries them as compilation metadata through each lowering stage, making them available where representation and memory placement decisions occur. Deterministic Memory Management (DMM), formalized as a coeffect discipline within the same graph, unifies escape analysis and memory placement with the dimensional framework. Escape analysis classifies value lifetimes into four categories (stack-scoped, closure-captured, return-escaping, byref-escaping), each mapping to a verified allocation strategy. We identify implications for auto-differentiation: the dimensional algebra is closed under the chain rule, and forward-mode gradient computation exhibits a coeffect signature that the framework can verify. The practical consequence is a development environment where escape diagnostics, allocation strategy, representation fidelity, and cache locality estimation are design-time views over the compilation graph.