We introduce the third major version of Metatheory.jl, a Julia library for general-purpose metaprogramming and symbolic computation. Metatheory.jl provides a flexible and performant implementation of e-graphs and Equality Saturation (EqSat) that addresses the two-language problem in high-level compiler optimizations, symbolics and metaprogramming. We present results from our ongoing optimization efforts, comparing the state-of-the-art egg Rust library's performance against our system and show that performant EqSat implementations are possible without sacrificing the comfort of a direct 1-1 integration with a dynamic, high-level and an interactive host programming language.
翻译:本文介绍Metatheory.jl的第三个主要版本——这是一个用于通用元编程与符号计算的Julia库。Metatheory.jl提供了灵活且高性能的e-graph及等式饱和(EqSat)实现,解决了高级编译器优化、符号计算与元编程领域长期存在的"双语言难题"。我们展示了当前优化工作的成果,将前沿的egg Rust库性能与本系统进行对比,结果表明:在保持与动态、高级、交互式宿主编程语言直接1:1集成的便利性同时,完全能够实现高性能的EqSat系统。