Link: Against Query Based Compilers
Query-based compilers are quite popular for languages these days. However, while query-based compiling is a useful tool, a language’s design should encourage as few query dependencies as possible.
For example, parsing in Rust might have dependencies on other files being compiled since macros can change the resulting AST. These dependencies are not ideal.
Meanwhile, in Zig, a file can be parsed with zero dependencies, which means all files can be parsed in parallel, which is a helpful property.
Further Reading
- Three Architectures For Responsive IDE
- Zig AstGen: AST ⇒ ZIR
- Links at the bottom of the article