Skip to main content
QUICK REVIEW

[论文解读] Type Arithmetics: Computation based on the theory of types

Oleg Kiselyov|ArXiv.org|Apr 3, 2001
Logic, programming, and type systems被引用 5
一句话总结

本文提出了一种基于类型理论的类型系统,将皮亚诺算术扩展至负数,通过类型约简规则实现加法、减法和除法等算术运算。其关键贡献在于,除零操作可作为类型错误在静态类型检查中被检测到,从而通过编译器强制防止运行时错误。

ABSTRACT

The present paper shows meta-programming turn programming, which is rich enough to express arbitrary arithmetic computations. We demonstrate a type system that implements Peano arithmetics, slightly generalized to negative numbers. Certain types in this system denote numerals. Arithmetic operations on such types-numerals - addition, subtraction, and even division - are expressed as type reduction rules executed by a compiler. A remarkable trait is that division by zero becomes a type error - and reported as such by a compiler.

研究动机与目标

  • 开发一种能够通过类型级编程表达任意算术计算的类型系统。
  • 在类型理论框架内将皮亚诺算术扩展至包含负数。
  • 将算术运算(加法、减法、除法)作为编译器中的类型约简规则实现。
  • 确保除零操作在编译时作为类型错误被检测到,从而防止运行时错误。
  • 证明类型级计算可以强制实现诸如除法安全等正确性属性。

提出的方法

  • 该系统使用类型级的数字表示法,其中类型表示包括负数在内的整数。
  • 算术运算被编码为类型级函数或约简规则,用于转换类型。
  • 加法和减法通过在类型级数字上递归执行类型级操作来定义。
  • 除法作为类型级运算实现,内置对零除数的检查,若尝试除零则产生类型错误。
  • 该类型系统被集成到编译器中,强制执行这些约简规则,并在发生无效操作时报告类型错误。
  • 该方法利用类型理论将算术计算直接嵌入类型系统,通过类型检查确保正确性。

实验结果

研究问题

  • RQ1基于类型理论的类型系统能否表达任意算术计算,包括负数?
  • RQ2加法、减法和除法等算术运算如何作为类型级约简规则进行编码?
  • RQ3能否通过类型级约束静态检测并防止除零操作?
  • RQ4编译器在通过类型级计算强制实现算术正确性方面发挥什么作用?
  • RQ5类型级算术在多大程度上能够强制实现诸如除零预防等安全属性?

主要发现

  • 该类型系统成功使用类型级数字将皮亚诺算术推广至包含负数。
  • 加法、减法和除法等算术运算被编码为由编译器执行的类型约简规则。
  • 除零操作被检测为类型错误并由编译器报告,从而防止无效计算。
  • 该系统证明了类型级编程可以在编译时强制实现算术安全属性。
  • 该方法表明,复杂的算术运算可以被嵌入并验证于类型系统中,其正确性由类型检查强制保证。
  • 实现证明了类型算术可作为具备内置正确性保证的计算基础。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。