探索Agda:验证式函数编程的新领域
1. 编程与验证编程概述
编程是计算机科学中至关重要的一部分。没有编程语言,程序员就无法以各种惊人且复杂的方式表达他们处理信息的想法,而这些方式是支持 21 世纪计算机应用不断增长所必需的。大多数计算机科学专业的学生,尤其是在美国,从学习之初就开始接触编程语言。
传统的编程方式中,为了确保软件的正确性,主要采用测试的方法,如单元测试、系统测试和回归测试套件等。然而,测试存在局限性。图灵奖获得者 Edsger Dijkstra 有句名言:“测试只能显示缺陷的存在,而不能证明其不存在”。因为实际中可能的输入或系统配置数量是无限的,而我们能运行的测试数量是有限的。
验证编程则提供了一种新的编程方式。它不是仅在有限的输入上测试程序,而是编写数学证明来证明程序在所有可能输入下的正确性。这些证明使用编程语言本身的特定语法编写,编译器在类型检查和编译代码时会检查这些证明。如果所有证明都正确,我们就能确定程序确实满足我们所证明的属性。虽然编写证明很困难,测试仍然是保证代码质量的重要方式,但验证编程为构建高质量软件提供了新的工具。
2. Agda 语言介绍
2.1 Agda 语言背景
Agda 是一种先进的编程语言,由瑞典哥德堡查尔姆斯理工大学多年来开发。当前版本 Agda 2 由 Ulf Norell 在其博士论文中设计和实现,此后,许多人对其进行了改进和进一步开发。
2.2 Agda 编程环境
使用 Agda 编程的基本模式是将 emacs 文本编辑器作为一个基本的集成开发环境(IDE)。在 emacs 的缓冲区中输入文本,然后通过按顺序键入 C
探索Agda与验证式函数编程
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



