Expressivity of AuDaLa: Turing Completeness and Possible Extensions
Tom T. P. Franken, Thomas Neele
TL;DR
The paper investigates the expressivity of AuDaLa, a data-autonomous, parallel language, by constructing a full implementation of a Turing machine within its semantics and proving Turing completeness. It introduces a self-contained semantic framework and uses TapeCell/Control abstractions to mirror TM transitions, establishing an equivalence between TM steps and AuDaLa steps. Beyond the completeness result, the authors propose three extensions—parameter-specific fixpoints, iterators, and arrays—to enhance practical expressivity and discuss their potential benefits and trade-offs. The work situates AuDaLa among data-parallel and actor-like systems, arguing that its simple design remains broadly expressive and adaptable, while outlining future directions like garbage collection and packaging to broaden applicability.
Abstract
AuDaLa is a recently introduced programming language that follows the new data autonomous paradigm. In this paradigm, small pieces of data execute functions autonomously. Considering the paradigm and the design choices of AuDaLa, it is interesting to determine the expressivity of the language. In this paper, we implement Turing machines in AuDaLa and prove that implementation correct. This proves that AuDaLa is Turing complete, giving an initial indication of AuDaLa's expressivity. Additionally, we give examples of how to add extensions to AuDaLa to increase its practical expressivity and to better match conventional parallel languages, allowing for a more straightforward and performant implementation of algorithms.
