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

15 Feb 2021  ·  Alessandro Cheli ·

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 Abstract Syntax Tree (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 to perform general purpose symbolic mathematics, manipulation, optimization, synthesis or analysis of syntactically valid Julia expressions with a clean and concise programming interface, both during compilation or execution of programs.

PDF Abstract

Categories


Programming Languages Symbolic Computation I.1.0; I.1.2; I.1.3; D.3.2; D.3.3; D.3.4

Datasets


  Add Datasets introduced or used in this paper