Effizientes E-Matching: Ein neues Werkzeug für optimierende Compiler
Moderne Theorembeweiser und optimierende Compiler basieren auf einer cleveren Technik: E-Matching. Es gleicht nicht nur die Syntax ab, sondern vor allem die Semantik, indem es Äquivalenzschlussfolgerungen mithilfe von E-Graphen und Kongruenzabschluss erreicht. Dieser Artikel befasst sich eingehend mit den Prinzipien des E-Matching, insbesondere wie man effizient passende Muster in E-Graphen findet, indem man Diskriminierungsbäume und Kongruenzabschluss verwendet und so die Ineffizienz der traditionellen rekursiven Traversierung vermeidet. Der Autor stellt auch seine Anwendung im Zob-Compiler vor, indem er Muster in virtuelle Maschineninstruktionen kompiliert, um ein effizientes E-Matching zu ermöglichen und die Optimierungseffizienz deutlich zu steigern.