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

02/15/2021
by   Alessandro Cheli, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

research
10/16/2017

MatchPy: A Pattern Matching Library

Pattern matching is a powerful tool for symbolic computations, based on ...
research
04/24/2020

Development of a General Purpose Sentiment Lexicon for Igbo Language

There are publicly available general purpose sentiment lexicons in some ...
research
09/29/2017

Efficient Pattern Matching in Python

Pattern matching is a powerful tool for symbolic computations. Applicati...
research
02/25/2023

Absynthe: Abstract Interpretation-Guided Synthesis

Synthesis tools have seen significant success in recent times. However, ...
research
02/17/2018

Design and Implementation of the Andromeda Proof Assistant

Andromeda is an LCF-style proof assistant where the user builds derivabl...
research
01/25/2021

Disambiguating Symbolic Expressions in Informal Documents

We propose the task of disambiguating symbolic expressions in informal S...
research
05/02/2023

A General Static Binary Rewriting Framework for WebAssembly

Binary rewriting is a widely adopted technique in software analysis. Web...

Please sign up or login with your details

Forgot password? Click here to reset