【论文翻译】《Egg: Fast and Extensible Equality Saturation》

《Egg: Fast and Extensible Equality Saturation》中文翻译:

热切希望读者提出翻译建议!

Egg (e-graphs good, https://egraphs-good.github.io/) 的工作提供了两项技术,使 e-graphs 快速和方便扩展,使其专门用于 Equality saturation:一是新的摊销的不变性恢复技术,称为重建。利用了 Equality saturation 的独特工作量,在实践中提供了比目前技术更多的渐进式(asymptotic speedups)加速;二是一个名为 e-class 分析的通用机制,它将特定领域的分析整合到 e-graph 中,减少了临时操作的需要。作者将这些技术在一个新的开源库实现,叫做 egg。另外对以前发表的三个 Equality saturation 的应用进行了案例研究,它突出了 egg 的性能和灵活性,在不同的领域可达到最先进的效果。在这些案例里,作者使用已发布的 egg 的工具,用于演绎综合(deductive synthesis)和程序优化( program optimization)的案例研究。这些领域包括浮点精度、线性代数优化、和 CAD 程序综合。相比以前的实现方式中, egg 的速度快了几个数量级,并提供了更多的功能。

翻译中需要注意的术语如下,译者未找到合适通用的翻译而自行翻译的有特别标注。

  • 确定的或有同类型文献使用的翻译

    • 钩入、钩子(hook);钩子编程(hooking),也称作“挂钩”,是计算机程序设计术语,指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。处理被拦截的函数调用、事件、消息的代码,被称为钩子(hook)。

    • 上近似(over-approximation);粗糙集术语。

    • 半格(semilattice);半格是满足运算是幂等的和交换的半群。

      “半格域”(semilattice domain)是一个数学概念,它是指一个满足一定条件的偏序集合,具体来说,它必须满足半格的条件,即任意两个元素都有最小上界和最大下界。

      半格域在计算机科学和离散数学中有着广泛的应用。例如,它们可以用来描述并发系统中的时间戳序列,也可以用来定义关系数据库中的关系模型。

      总之,半格域是一个重要的数学概念,它在许多领域都有着广泛的应用。

    • 演绎综合(deductive synthesis);国内综述《形式化方法概貌》使用此翻译。

    • 最先进的技术(state-of-the-art);科研习语。

    • 常量折叠(constant folding);所谓常量折叠,指的是编译时查找并计算常量表达式,而不是在运行时再对其进行计算,从而会使运行时更加精简和快速。

    • 线性代数(Linear Algebra,LA),是一门数学学科,主要研究线性方程组、向量空间、线性变换等概念。

    • 关系代数(Relational Algebra,RA)是一门计算机科学学科,主要研究关系数据库系统中数据存储和检索的方法。它提供了一组数学符号,用于描述数据库中数据关系,并提供了一组操作,用于处理数据库中的数据。

  • 译者未找到合适通用的翻译而自行的翻译

    • 等式饱和(equality saturation);本论文主要面向的技术之一。

      • 等式饱和工作负载(equality saturation workload)
    • 项(term);

      • 项图(term graph);
    • 哈希康(hashcons);参考 Hash consing - Wikipedia列表构造函数 - 维基百科,自由的百科全书 (wikipedia.org)中的说法,列表构造函数是用来构造列表的基本函数,在大多数 LISP 体系的计算机编程语言中,使用的函数名称是 cons。LISP 编程中表达要把 x 加入 y 的语法:(cons x y)。“cons”和诸如“cons onto”的词句,也是函数编程的通用术语。在计算机科学中,特别是在函数式编程中,哈希 consing 是一种用于共享结构上相等的值的技术。散列 consing 一词起源于 Lisp 的实现,它试图重用以前构建的 cons 单元,避免了内存分配的惩罚。因比较复杂,而“哈希”一词已是音译,故采用音译。

      • 哈希康化(hashconsing);
    • 不变量(Invariant);

      • 同余不变量(Congruence Invariant);
      • 哈希康不变量(Hashcons Invariant);
      • 延迟不变性(deferred invariant);
    • 同余(congruence);对于本论文,congruence 指 𝑎 ≡ 𝑏 蕴含 𝑓 (𝑎) ≡ 𝑓 (𝑏 )。

    • 代码搜索(code search);

    • 术语排序选择(phase ordering);有些翻译为编译优化选择(Phase Ordering Problem )

    • 渐进式加速(asymptotic speedups);

    • 重建(rebuilding);

    • 去重(deduplication);

    • 黑盒 ID(opaque identifiers);一个不透明的标识符

    • 规范化(canonicalizes);典型化,正规化;

    • 半格联并(semilattice join),此词为 join-semilattice 的变化;

    • 半格域(semilattice domain);

    • 等式推理(equational reasoning);

    • 偏序归约(partial-order reduction),即检查各个状态和行为间的独立性以减小整体的状态空间;

    • 捕获避免(capture avoidance);

    • 每规则每次调度器(every-rule-every-time scheduler);一种调度器

    • 平面缓冲区(flat buffers);计算机技术,一种缓冲区

    • 超优化(Superoptimization);Superoptimization - Wikipedia:超优化是一个编译器自动找到无循环指令序列的最佳序列的过程。现实世界的编译器通常不能产生真正的最优代码,而大多数标准的编译器优化只能部分地改进代码,超级优化器的目标是找到最优序列,即典型形式。超级优化器可以用来改进传统的优化器,它突出显示错过的机会,这样人类就可以编写额外的规则。

    • 不动点(saturation);函数不动点是函数的一个应用广泛且深入的性质。

    • 萃取(extraction);egg 的主要工作之一,分析 E 图并选择根据用户提供的成本函数,选择最佳程序。

    • 特定领域的分析(domain-specific analyses);

    • 循环重绕(loop rerolling);loop rerolling rules 用来发现特定的结构。

    • 求解器支持的重写(solver-backed rewrites);

    • 反向变换(inverse transformations);

    • 消解(cancellation);

    • 函数反转(function inverses);

    • 冗余计算(redundant computation);

    • 格点组合(composition of lattices);lattices:格点

  • 保留英文写法

    • E-graph 、E-matching
    • union-find(联合查找);
    • fact(事实)
  • 临时存放

    • ATP 自动定理证明(Automated Theorem Proving)

    • equality modulo alpha renaming 同模(equality modulo)阿尔法重命名(alpha renaming)

      • "equality modulo"是数学和计算机科学中的术语,表示相等关系在某些条件下成立。具体来说,在模掉某个等价类之后,两个对象仍然相等。
      • "Alpha renaming"是一个计算机科学中的概念,通常在编程语言中使用。它是指更改函数或变量名称的过程,同时保持其语法结构和功能不变。这种更改通常是为了避免命名冲突或提高代码的可读性。
      • lambda 演算 (Lambda calculus)

        三条公理:

        1. alpha-变换 α-conversion:函数参数名是随意取的
          λx.(λx.x)x 与 λy.(λx.x)y 是等价的。
        2. beta-归约 β-reduction:函数应用(运算过程)就是符号模板的替换过程。

        (λx. M) N 表示将函数体 M 中所有名称为 x 的符号都替换为 N。例如 (λf.f 3)(λx.x+2) = (λx.x+2)3 = 3 + 2 = 5

        这里存在一个隐含的内在复杂性:没有一个通用的方法来判定两个 λ 表达式是否等价。Church 提出 lambda 演算就是为了证明这个定理,从而否证希尔伯特判定性问题。

        1. eta-归约 η-reduction:如果运算结果总相等,则 λ 表达式等价
          f ≡ λx.f x

        Church-Rosser 定理:当把归约规则施用于 λ 项和 λ 演算时,所选择的归约顺序将不会影响最终的结果

        —— https://zhuanlan.zhihu.com/p/547191928

    • e-class 分析器(e-class Analyses)

    • 循环重投(loop rerolling)

    • 网格反编译(mesh decompilation)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

框架主义者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值