Proceedings of the ACM on Programming Languages · 2023 · 30 citations · 34 references
ComputingComputer ScienceAlgorithmsFormal MethodsProgramming LanguagesAbstract Syntax TreesData-flow AnalysisDatalogFixed-point LogicFixpoint ComputationPointer AnalysisSaturationTerm RewritingTerm Rewriting SystemsUnification
We present egglog, a fixpoint reasoning system that unifies Datalog and equality saturation (EqSat). Like Datalog, egglog supports efficient incremental execution, cooperating analyses, and lattice-based reasoning. Like EqSat, egglog supports term rewriting, efficient congruence closure, and extraction of optimized terms. We identify two recent applications -- a unification-based pointer analysis in Datalog and an EqSat-based floating-point term rewriter -- that have been hampered by features missing from Datalog but found in EqSat or vice-versa. We evaluate our system by reimplementing those projects in egglog. The resulting systems in egglog are faster, simpler, and fix bugs found in the original systems.
34
Points-to analysis in almost linear time
Bjarne Steensgaard · 1996 · 1.1K citations · Full text
Simplify: a theorem prover for program checking
David Detlefs, Greg Nelson, James B. Saxe · Journal of the ACM · 2005 · 781 citations
Variations on the Common Subexpression Problem
Peter J. Downey, Ravi Sethi, Robert E. Tarjan · Journal of the ACM · 1980 · 350 citations · Full text