【24h】

Low-Level Liquid Types;

机译:低水平的液体类型;

获取原文
获取外文期刊封面目录资料

摘要

We present Low-Level Liquid Types, a refinement type system for C based on Liquid Types. Low-Level Liquid Types combine refinement types with three key elements to automate verification of critical safety properties of low-level programs: First, by associating refinement types with individual heap locations and precisely tracking the locations referenced by pointers, our system is able to reason about complex invariants of in-memory data structures and sophisticated uses of pointer arithmetic. Second, by adding constructs which allow strong updates to the types of heap locations, even in the presence of aliasing, our system is able to verify properties of in-memory data structures in spite of temporary invariant violations. By using this strong update mechanism, our system is able to verify the correct initialization of newly-allocated regions of memory. Third, by using the abstract interpretation framework of Liquid Types, we are able to use refinement type inference to automatically verify important safety properties without imposing an onerous annotation burden. We have implemented our approach in CSOLVE, a tool for Low-Level Liquid Type inference for C programs. We demonstrate through several examples that Csolve is able to precisely infer complex invariants required to verify important safety properties, like the absence of array bounds violations and null-dereferences, with a minimal annotation overhead.
机译:我们呈现低水平的液体类型,基于液体类型的C细化型系统。低级液体类型与三个关键元素相结合的细化类型,以自动验证低级程序的关键安全性质:首先,通过将细化类型与单个堆位置相关联并精确跟踪指针引用的位置,我们的系统能够推理关于内存数据结构的复杂不变性和指针算术的复杂使用。其次,通过添加构造,即使在存在混叠的情况下,也能够对堆位置的类型进行强烈更新,我们的系统能够验证内存数据结构的属性,尽管临时的不变违规。通过使用此强大的更新机制,我们的系统能够验证新分配的内存区域的正确初始化。第三,通过使用液体类型的抽象解释框架,我们能够使用细化型推断,以自动验证重要的安全性能,而不会施加繁重的注释负担。我们在CSOLVE中实现了我们的方法,是C程序的低级液体类型推理的工具。我们通过若干示例演示了CSOLVE能够精确推断所需的复杂不变性,以验证重要的安全性属性,如缺少阵列违规和无效的违规,具有最小的注释开销。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号