精确计算程序转换:去除平方根与除法的方法

0 下载量 140 浏览量 更新于2024-06-18 收藏 647KB PDF 举报
本文探讨了程序转换的一个关键应用,即在不依赖于递归的前提下,消除函数程序中的平方根和除法运算,以生成能够进行精确计算的代码。这项技术主要针对理论计算机科学领域,特别是关注实数计算的精确性问题,这对于对安全性和性能要求极高的嵌入式系统尤其重要,如航空航天领域的设备。 研究者Pierre Neron介绍了这种方法,其工作原理是设计一种转换工具,能够处理不同编程语言的子集,其中以PVS(Proof Verifier System)为目标语言时,转换过程还包括了证明机制。转换过程中,输出代码中的每个函数定义与其原始输入代码中的函数定义之间建立了明确的关系,描述了生成函数如何忠实于输入函数的行为。 具体实现上,该技术已经在OCaml编程语言中被构建并进行了测试,证明了其在实际操作中的可行性。对于那些不能直接运行PVS代码的嵌入式系统,可以通过从PVS规范中提取出真实语言中的代码来确保安全性和准确性。这种方法避免了无界的内存和循环行为,转而采用有限表示、抽象解释或区间算术来管理舍入误差。 同时,文章提到了对于某些场景,如证明系统在有效实现上的正确性,而非直接在实数上,可能需要采用不同的策略,比如在点数系统上进行证明。这种方法的目的是确保系统的整体正确性,即使是在非理想条件下的实数运算。 这篇文章在理论计算机科学的背景下,为提高嵌入式系统安全性、实数计算精确性和证明过程的可靠性提供了创新的程序转换技术,这在当前的工程实践中具有重要的实际意义。