2021
DOI: 10.21105/joss.03078
|View full text |Cite
|
Sign up to set email alerts
|

Metatheory.jl: Fast and Elegant Algebraic Computation in Julia with Extensible Equality Saturation

Abstract: We introduce Metatheory.jl: a lightweight and performant general purpose symbolics and metaprogramming framework meant to simplify the act of writing complex Julia metaprograms and to significantly enhance Julia with a native term rewriting system, based on state-of-the-art equality saturation techniques, and a dynamic first class AST pattern matching system that is dynamically composable in an algebraic fashion, taking full advantage of the language's powerful reflection capabilities. Our contribution allows … Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
3
3

Relationship

3
3

Authors

Journals

citations
Cited by 6 publications
(10 citation statements)
references
References 7 publications
0
10
0
Order By: Relevance
“…On the lowest level, TermInterface.jl and Metatheory.jl packages [17,10,16] provide an efficient expression rewriting engine and rule definition eDSL. Rules are written as regular Julia expressions, thus parsed into S-expressions and then efficiently compiled to callable functions that perform pattern matching and support advanced conditional selection [18,10,16].…”
Section: Rule-based Integrationmentioning
confidence: 99%
“…On the lowest level, TermInterface.jl and Metatheory.jl packages [17,10,16] provide an efficient expression rewriting engine and rule definition eDSL. Rules are written as regular Julia expressions, thus parsed into S-expressions and then efficiently compiled to callable functions that perform pattern matching and support advanced conditional selection [18,10,16].…”
Section: Rule-based Integrationmentioning
confidence: 99%
“…• chapter 2 introduces the package Metatheory.jl [8], designed to provide generic term rewriting utilities for Julia code and symbolic expressions, and we are going to talk about its role in a redesign of the Julia symbolic mathematics package ecosystem. We then describe how Metatheory.jl provides a pure-Julia implementation of a novel technique called e-graph rewriting [58] that generalizes an algorithm called equality saturation [53], in order to provide a new abstraction over term rewriting that supports equational rewrite rules and is thus particularly suitable for high-level domain specific compiler optimizations and symbolic mathematics.…”
Section: Structure and Organization Of The Thesismentioning
confidence: 99%
“…The key focus of this work resides in the innovative expression rewriting features offered by the Metatheory.jl [8] package, discussed in section 2.3, specifically term rewriting and code analysis through equality graphs, detailed in subsection 2.3.2.…”
Section: Chapter 2 An Advanced Framework For Expression Rewriting In ...mentioning
confidence: 99%
See 2 more Smart Citations