当前位置: X-MOL 学术J. Funct. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Cogent: uniqueness types and certifying compilation
Journal of Functional Programming ( IF 1.1 ) Pub Date : 2021-10-27 , DOI: 10.1017/s095679682100023x
LIAM O’CONNOR 1 , ZILIN CHEN 2 , CHRISTINE RIZKALLAH 3 , VINCENT JACKSON 4 , SIDNEY AMANI 5 , GERWIN KLEIN 6 , TOBY MURRAY 7 , THOMAS SEWELL 8 , GABRIELE KELLER 9
Affiliation  

This paper presents a framework aimed at significantly reducing the cost of proving functional correctness for low-level operating systems components. The framework is designed around a new functional programming language, Cogent. A central aspect of the language is its uniqueness type system, which eliminates the need for a trusted runtime or garbage collector while still guaranteeing memory safety, a crucial property for safety and security. Moreover, it allows us to assign two semantics to the language: The first semantics is imperative, suitable for efficient C code generation, and the second is purely functional, providing a user-friendly interface for equational reasoning and verification of higher-level correctness properties. The refinement theorem connecting the two semantics allows the compiler to produce a proof via translation validation certifying the correctness of the generated C code with respect to the semantics of the Cogent source program. We have demonstrated the effectiveness of our framework for implementation and for verification through two file system implementations.

中文翻译:

Cogent:唯一性类型和证明编译

本文提出了一个旨在显着降低证明低级操作系统组件功能正确性的成本的框架。该框架是围绕一种新的函数式编程语言 Cogent 设计的。该语言的一个核心方面是其独特的类型系统,它消除了对可信运行时或垃圾收集器的需求,同时仍保证内存安全,这是安全和安保的关键属性。此外,它允许我们为语言分配两种语义:第一种语义是命令式的,适用于高效的 C 代码生成,第二种是纯函数式的,为等式推理和更高级别正确性属性的验证提供用户友好的界面. 连接这两种语义的细化定理允许编译器通过翻译验证产生证明,证明生成的 C 代码相对于 Cogent 源程序的语义的正确性。我们已经通过两个文件系统实现展示了我们的框架在实现和验证方面的有效性。
更新日期:2021-10-27
down
wechat
bug