This thesis proposes an advanced, generic and high-level code rewriting and analysis system in the Julia programming language, providing applied equality saturation in the presence of multiple dispatch and metaprogramming. We show how our system can practically solve some challenging problems: Can programmers implement their own high-level compiler optimizations for their domain-specific scientific programs, without the requirement of them being compiler experts at all? Can these optimizers be implemented by users in the same language and inside the same programs they want to optimize, solving the two-language problem? Can these compiler optimizers be written in a high-level fashion, as equations, without the need to worry about the rewriting ordering? Thus, can symbolic mathematics do high-level compiler optimizations or vice-versa?
翻译:这篇论文提议在朱丽亚编程语言中建立一个先进的、通用的和高级的代码重写和分析系统,在多重发送和元程序化的情况下提供应用的平等饱和度。我们展示了我们的系统如何能够切实解决一些具有挑战性的问题:编程者能否在完全不要求他们成为编程专家的情况下,为其具体领域的科学方案实施自己的高水平编程优化?这些优化器能否由用户以他们想要优化的同一语言在相同的程序内实施,解决两种语言的问题?这些编程者优化器能否以高水平的方式,作为方程式,在无需担心重写顺序的情况下,以高水平的写法写成?因此,符号数学能够做高水平编程优化还是反面的?