The Autonomous Data Language -- Concepts, Design and Formal Verification
Tom T. P. Franken, Thomas Neele, Jan Friso Groote
TL;DR
The paper introduces the data-autonomous paradigm and AuDaLa, a language where data elements execute computations under a global schedule, decoupling computation from processors. It formalizes AuDaLa with a rigorous type system and a stack-based operational semantics, enabling formal verification of parallel programs and proving properties like safety and determinism under race-free conditions. The authors demonstrate the framework through several standard parallel algorithms (spanning tree, sorting, 3SUM) and provide proofs of correctness for selected programs (prefix sum, sort2), illustrating modular, contract-based verification. They also discuss related work, practical considerations (weak memory semantics, CUDA backend), and avenues for future enhancements including inheritance, packaging, debugging, and mechanized proofs. Overall, the work positions AuDaLa as a rigorous, verifiable data-centric alternative to traditional thread- and task-based parallelism with potential practical compilers and implementations.
Abstract
Nowadays, the main advances in computational power are due to parallelism. However, most parallel languages have been designed with a focus on processors and threads. This makes dealing with data and memory in programs hard, which distances the implementation from its original algorithm. We propose a new paradigm for parallel programming, the data-autonomous paradigm, where computation is performed by autonomous data elements. Programs in this paradigm are focused on making the data collaborate in a highly parallel fashion. We furthermore present AuDaLa, the first data autonomous programming language, and provide a full formalisation that includes a type system and operational semantics. Programming in AuDaLa is very natural, as illustrated by examples, albeit in a style very different from sequential and contemporary parallel programming. Additionally, it lends itself for the formal verification of parallel programs, which we demonstrate.
