Fastbelt: An Architecture for Efficient Language Engineering
Abstract
Language workbenches such as Xtext and Langium have made it substantially easier to build IDE tooling for domain-specific languages. However, as workspaces grow, build times and memory consumption of these frameworks exceed acceptable levels, negatively impacting user experience. In this paper, we present Fastbelt, a new language workbench written in Go and designed for high-performance language engineering. Like existing frameworks, Fastbelt uses an extended EBNF-like grammar to generate runtime code for parsing and building DSLs. Its architecture departs from previous approaches by eliminating the concrete syntax tree, linking abstract syntax tree nodes to zero-copy token slices, and parallelizing parsing, symbol-table construction, and reference resolution across the workspace. This yields dependency-free, natively compiled language servers with considerably lower build times and memory usage than comparable frameworks. We discuss the architectural principles behind Fastbelt and experimentally evaluate the resulting architecture against established language engineering frameworks, demonstrating significant improvements in runtime efficiency and scalability.