×

使用值相关类型保护分布式编程。 (英语) Zbl 1290.68033号

摘要:分布式应用程序很难可靠、安全地编程。依赖类型的函数语言承诺防止广泛的错误和漏洞,并使程序验证与开发并行进行。然而,随着递归、效果和丰富库的添加,使用类型来推理程序、规范和证明变得很有挑战性。我们介绍了F*,一种用于安全分布式编程的新型独立类型语言的完整设计和实现。
我们的语言提供任意递归,同时保持逻辑一致的核心;它支持使用仿射类型对状态和其他效果进行模块化推理;它支持使用密码证据和逻辑证明术语的混合来证明细化属性。关键机制是一种新型系统,它跟踪F*中的几个子语言并控制它们的交互。F*包含前两种语言F7和Fine。我们证明了F*的类型稳健性(在Coq中使用机械化的证明)和逻辑一致性。我们已经实现了一个将F*转换为的编译器。NET字节码,基于Fine的原型。F*提供对库的访问,以实现并发性、联网、加密以及与C#、F#等的互操作性。NET语言。编译器生成可验证的二进制文件,证明和类型的代码大小开销为60%,比Fine编译器提高了45倍,同时仍然支持高效的字节码验证。我们已经编程和验证了近50000行F*,包括多党会议的新方案;零知识隐私保护支付协议;provence-aware管理的数据库;验证授权属性的一套web浏览器扩展;带有验证引用监控器的云主机多层web应用程序;核心F*类型检查器本身;以及从F7和JavaScript等其他语言翻译为F*的程序。

MSC公司:

68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68甲18 函数编程和lambda演算
68号30 软件工程的数学方面(规范、验证、度量、需求等)
68甲15 编程语言理论
68吨15 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部