Print

基于契约式设计的VeriJava编程语言设计

论文摘要

基于契约进行程序验证的理论最早出现于20世纪70年代对大型系统的研究之中。20世纪90年代,Bertrand Meyer首次将契约式设计(Design by Contract, DbC)理念引入了面向对象编程技术中,并且在其构建的Eiffel语言中进行了全面的支持。现在,契约式设计已经发展成为构建高质量和可靠性软件的一种重要的软件工程方法,并且越来越受到学术界和工业界的关注。契约式设计通过在程序中引入前置条件,后置条件和常量等契约条件的方式,在应用程序的服务提供者与调用者之间建立了一种需要双方相互满足的契约关系。可以通过对契约条件进行动态检查或静态验证的方式来实现程序的可验证性。目前,已经有多种编程语言直接或间接地支持了契约式设计的理念,这其中包括C++和C#等被程序开发者广泛使用的高级面向对象语言。Java作为主流编程语言之一,自身并不支持契约式设计的理念。近年来虽然出现了一些将契约式设计引入Java语言中技术手段,但基本都是通过Java内部的某些机制或者改变Java虚拟机的行为来实现的。这类实现方式使契约的编写与程序分离,契约和编写校验不具有强制性,或者契约仅仅是程序的补丁。因此,都没有实现令Java编程语言自身完全支持契约式设计。而JDK1.4中引入的断言(assert)并不能完全涵盖契约式设计的全部特性。

论文目录

  • 摘要
  • ABSTRACT
  • 1、绪论
  • 1.1 研究背景与意义
  • 1.2 研究内容与成果
  • 2、契约式设计理论
  • 2.1 契约式设计的定义及其对程序开发的意义
  • 2.2 国内外研究现状
  • 3、VERIJAVA 语言的设计、定义与特性
  • 3.1 VERIJAVA 语言系统整体架构
  • 3.2 VERIJAVA 中需要支持的契约条件
  • 3.3 VERIJAVA 词法语法定义
  • 3.4 VERIJAVA 语义说明
  • 3.5 VERIJAVA 中的契约研究与分析
  • 3.6 完整实例及分析
  • 3.7 本章小结
  • 4、VERIJAVA 程序的动态检查
  • 4.1 契约的校验
  • 4.2 基于AOP 的契约动态检查
  • 4.3 契约动态检查工具架构设计
  • 4.4 AOP 动态检查器与VERIJAVA 编译器的对比
  • 4.5 本章小结
  • 5、VERIJAVA 工具包
  • 5.1 工具概述
  • 5.2 ECLIPSE 及其插件技术
  • 5.3 工具实现及分析
  • 5.4 工具使用实例
  • 5.5 性能测试与分析
  • 6、总结与展望
  • 参考文献
  • 致谢
  • 攻读硕士期间已发表论文
  • 相关论文文献

    本文来源: https://www.lw50.cn/article/6553f50431bdd8a33f894368.html