【发布时间】:2017-06-18 16:19:36
【问题描述】:
安全性通常通过强静态类型来实现。尽管有非常强大的类型系统(依赖类型),但它们都不足以表达关于代码的任意形式证明。另一个问题是类型系统与单一编程语言紧密耦合,抑制了形式证明的重构。
我正在考虑的一个可能的框架是一个编译器,当程序员(或自动化工具)提供允许优化的正式证明时,它会激活优化。例如唯一性、终止、数组边界检查、内存管理、安全等。
是否有任何编程语言以某种方式实现了这个概念?
我知道证明携带代码,但它通常被实现为常规类型系统和在程序转换下证明类型安全的编译器。
【问题讨论】: