Explore algebraic metaprogramming in Julia through this 25-minute JuliaCon2021 talk. Dive into the Metatheory.jl package, which combines pattern matching, term rewriting, and Julia's metaprogramming capabilities. Learn about E-Graphs, equality saturation, and their applications in compiler transforms, numerical optimization, and computer algebra systems. Compare classical rewriting with E-Graph rewriting, and see practical examples using Symbolics.jl and SymbolicUtils.jl. Discover how these techniques can be applied to category theory and outperform traditional algorithms like Knuth-Bendix. Gain insights into future directions and potential applications of algebraic metaprogramming in Julia.
Unleashing Algebraic Metaprogramming in Julia with Metatheory.jl