Cellato: a DSL for Cellular Automata based on C++ Template Meta-programming
By: Matyáš Brabec, Jiří Klepl, Martin Kruliš
Abstract
Cellato is a tool with embedded DSL in C++ that leverages template meta-programming to define and execute cellular automata via concise type-level expressions that are specialized into efficient kernels at compile time. Its modular architecture decouples the Algorithm, Evaluator, Layout, and Traverser, allowing users to mix and match components without altering rule definitions. Targeting both CPU and GPU back-ends, Cellato delivers performance on par with hand-tuned code.
Keywords
Domain-Specific Language, Cellular Automata, Bit-Packing, C++ Template Metaprogramming, CUDA
Cite as:
Matyáš Brabec, Jiří Klepl, Martin Kruliš, “Cellato: a DSL for Cellular Automata based on C++ Template Meta-programming”, Journal of Object Technology, Volume 25, no. 1 ( 2026), pp. 1:1-13, doi:10.5381/jot.2026.25.1.a13.
DOI | BiBTeX | Tweet this | Post to CiteULike | Share on LinkedIn