关于服务
翻译我在ATS(应用类型系统)中编写生产系统代码——一种让你将裸金属的速度与数学验证的正确性结合起来的语言。如果你需要一个驱动程序、嵌入例程、解析器或没有权利泄漏内存或读取缓冲区的热路径,我会直接在类型系统中编码这些保证。在ATS中,编译器强制我在代码编译之前解除证明义务,因此一类在C版本中未被注意到的错误在这里根本无法编译。工作从你的不变式开始。我们达成一致,必须保持的条件:没有双重释放,没有缓冲区溢出,每个资源的线性所有权,递归例程的保证终止。然后我将其用依赖类型和线性证明表达出来,针对它们实现代码,并交付一个携带自身安全证书的结果。由于ATS编译为干净的C,结果可以无缝集成到你的构建中,并且运行时没有垃圾回收的开销。交付包括ATS源代码、生成的C、构建脚本、带有证明注释的小测试工具,以及解释每个证明不变式的文本说明。在多年的低级工作中,我构建了无锁结构和安全的ATS绑定到遗留C库。以形式逻辑的层面推理指针、大小和生命周期对我来说是常规。描述一个让你担忧的约束,我会将其转化为编译器在每次重建时检查的定理。