2025/09/19 by Shardul Chiplunkar, Chiplunkar, Shardul, Clément Pit-Claudel +1 · 3 voices
Computer Science · #FOS: Computer and information sciences #Programming Languages (cs.PL) #cs.PL
paper · pdf · doi:10.48550/arxiv.2509.15834
published as In 40th European Conference on Object-Oriented Programming (ECOOP 2026). Leibniz International Proceedings in Informatics (LIPIcs), Volume 372, pp. 2:1--2:31. Schloss Dagstuhl -- Leibniz-Zentrum fuer Informatik, 2026 · 26 pages (+5 references); many figures; artifact evaluated functional and reusable. Associated software at https://github.com/epfl-systemf/librrd/ and online playground at https://systemf.epfl.ch/etc/librrd/. Replaces arXiv v1 (preprint) with published version
arxiv created 2026/07/30 · arxiv updated 2026/07/31
Railroad diagrams (also called "syntax diagrams") are a common, intuitive visualization of grammars, but limited tooling and a lack of formal attention to their layout mostly confines them to hand-drawn documentation. We present the first formal treatment of railroad diagram layout along with a principled, practical implementation. We characterize the problem as compiling a *diagram language* (specifying conceptual components and how they connect and compose) to a *layout language* (specifying basic graphical shapes and their sizes and positions). We then implement a compiler that performs *line wrapping* to meet a target width, as well as vertical *alignment* and horizontal *justification per user-specified policies. We frame line wrapping as optimization, where we describe principled dimensions of optimality and implement corresponding heuristics. For front-end evaluation, we show that our diagram language is well-suited for common applications by describing how regular expressions and Backus-Naur form can be compiled to it. For back-end evaluation, we argue that our compiler is practical by comparing its output to diagrams laid out by hand and by other tools.