Abstract
Pattern matching is at the heart of compilers—but it’s often buried in complex, hard-to-read code.
What if we could make it visual—and declarative?
In this talk, we explore a new approach where flowcharts represent pattern matching logic as tree structures, inspired by logic programming. Instead of writing matching rules directly in code, they are defined visually and compiled into Rust.
This approach is applied in a RISC-V C compiler, where flowcharts describe transformations and matching rules. Using Rust macros, a PEG parser (Pest), and the logic programming library Ascent, these diagrams are translated into efficient, type-safe implementations at compile time.
By combining visual structure with logic programming, this method enables more declarative and composable pattern matching, making compiler logic easier to read, modify, and reason about.
This session shows how Rust can go beyond implementation and help rethink pattern matching in compilers through diagrams, logic, and compile-time generation.