Unleashing Algebraic Metaprogramming in Julia with Metatheory.jl
Offered By: The Julia Programming Language via YouTube
Course Description
Overview
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.
Syllabus
Welcome!.
Introduction.
What can we do with Metatheory.jl?.
Equations are good.
Classical rewriting.
E-Graph.
The path to the E-Graph.
Why Julia?.
A sketch of an E-Graph in Julia.
Equality saturation.
What is so cool about e-graphs?.
Classical rewriting vs E-Graph rewriting.
Symbolics.jl.
Fibonacci with SymbolicUtils.jl vs Metatheory.jl.
Category Theory.
Going faster than Knuth-Bendix.
Other Experiments.
Future directions.
Taught by
The Julia Programming Language
Related Courses
Gatlab - Combining Computer Algebra and Standard ML ModulesThe Julia Programming Language via YouTube E-graphs and Automated Reasoning: Looking Back to Look Forward
ACM SIGPLAN via YouTube Disequalities in E-Graphs: An Experiment
ACM SIGPLAN via YouTube Automated Proof Generation for Associative and Distributive Rewriting with E-Graphs
ACM SIGPLAN via YouTube EGSTRA: E-Graph-Based Strategy for Test Suite Reduction and Abstraction
ACM SIGPLAN via YouTube