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