首页> 外文学位 >Type qualifiers: Lightweight specifications to improve software quality.
【24h】

Type qualifiers: Lightweight specifications to improve software quality.

机译:类型限定符:轻量级规范,以提高软件质量。

获取原文
获取原文并翻译 | 示例

摘要

Software plays a pivotal role in our daily lives, yet software glitches and security vulnerabilities continue to plague us. Existing techniques for ensuring the quality of software are limited in scope, suggesting that we need to supply programmers with new tools to make it easier to write programs with fewer bugs. In this dissertation, we propose using type qualifiers, a lightweight, type-based mechanism, to improve the quality of software. In our framework, programmers add a few qualifier annotations to their source code, and type qualifier inference determines the remaining qualifiers and checks consistency of the qualifier annotations. In this dissertation we develop scalable inference algorithms for flow-insensitive qualifiers, which are invariant during execution, and for flow-sensitive qualifiers, which may vary from one program point to the next. The latter inference algorithm incorporates flow-insensitive alias analysis, effect inference, ideas from linear type systems, and lazy constraint resolution to scale to large programs. We also describe a new language construct “restrict” that allows a programmer to specify certain aliasing properties, and we give a provably sound system for checking usage of restrict. In our system, restrict is used to improve the precision of flow-sensitive type qualifier inference. Finally, we describe a tool for adding type qualifiers to the C programming language, and we present several experiments using our tool, including finding security vulnerabilities in popular C programs and finding deadlocks in the Linux kernel.
机译:软件在我们的日常生活中起着举足轻重的作用,但是软件故障和安全漏洞继续困扰着我们。现有的确保软件质量的技术范围有限,这表明我们需要为程序员提供新的工具,以使其更容易编写具有更少错误的程序。在本文中,我们提出使用类型限定符(一种轻量级的,基于类型的机制)来提高软件质量。在我们的框架中,程序员在其源代码中添加了一些限定符注释,类型限定符推断确定了其余限定符并检查了限定符注释的一致性。在本文中,我们为在执行过程中不变的对流量不敏感的限定符以及对于可能在一个程序点到下一个程序点不同的对流量敏感的限定符开发了可伸缩的推理算法。后一种推理算法结合了对流量不敏感的别名分析,效果推理,线性类型系统的思想以及惰性约束解析以扩展到大型程序。我们还描述了一种新的语言构造“ restrict”,该语言构造允许程序员指定某些别名属性,并且我们提供了一种可验证的健全系统来检查limit的使用情况。在我们的系统中,使用strict来提高流敏感类型限定符推断的精度。最后,我们描述了一种用于在C编程语言中添加类型限定符的工具,并使用该工具进行了一些实验,包括在流行的C程序中查找安全漏洞以及在Linux内核中查找死锁。

著录项

  • 作者

    Foster, Jeffrey Scott.;

  • 作者单位

    University of California, Berkeley.;

  • 授予单位 University of California, Berkeley.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2002
  • 页码 p.806
  • 总页数 199
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号