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

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:yogonet
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
基于契约进行程序验证的理论最早出现于20世纪70年代对大型系统的研究之中。20世纪90年代,Bertrand Meyer首次将契约式设计(Design by Contract, DbC)理念引入了面向对象编程技术中,并且在其构建的Eiffel语言中进行了全面的支持。现在,契约式设计已经发展成为构建高质量和可靠性软件的一种重要的软件工程方法,并且越来越受到学术界和工业界的关注。契约式设计通过在程序中引入前置条件,后置条件和常量等契约条件的方式,在应用程序的服务提供者与调用者之间建立了一种需要双方相互满足的契约关系。可以通过对契约条件进行动态检查或静态验证的方式来实现程序的可验证性。目前,已经有多种编程语言直接或间接地支持了契约式设计的理念,这其中包括C++和C#等被程序开发者广泛使用的高级面向对象语言。Java作为主流编程语言之一,自身并不支持契约式设计的理念。近年来虽然出现了一些将契约式设计引入Java语言中技术手段,但基本都是通过Java内部的某些机制或者改变Java虚拟机的行为来实现的。这类实现方式使契约的编写与程序分离,契约和编写校验不具有强制性,或者契约仅仅是程序的补丁。因此,都没有实现令Java编程语言自身完全支持契约式设计。而JDK1.4中引入的断言(assert)并不能完全涵盖契约式设计的全部特性。
其他文献
对等网络”(Peer-to-Peer Network,以下简称P2P网络)技术今年以来在学术界与产业界引起了广泛的关注,许多基于P2P网络的文件共享、数据共享、计算资源共享、即时消息传递等应
随着计算机技术的迅速发展,计算机应用领域不断扩大,网络系统的应用越来越广泛,支持分布式应用也已成为软件体系结构的基本特征,高可靠、高效率软件产品的开发模式和开发过程成为
搜索引擎解决了用户搜索信息的难题。但是,由于传统搜索引擎采用集中式架构,还存在许多问题,如服务器故障、存储容量有限、以及存储链接不能及时更新等,严重影响了搜索引擎的性能
多媒体视频监控业务虽然已经是成熟的互联网业务,但由于缺乏信令概念和相应体系,会话控制及相关的用户认证、授权和计费都比较困难,导致开展信息服务的技术门槛过高,难以通过
多年以来,面向对象编程(Object-Oriented Programming,OOP)作为软件开发领域的主要编程范式,大大提高了软件代码的模块性、可重用性,降低了软件的复杂度以及软件的维护成本。
近年来,由于IPv4地址匮乏、路由表急剧膨胀等问题,使得IPv6协议应运而生。与IPv4相比,IPv6具有内置的安全机制,增强的组播支持等优越性,而最关键的是IPv6提供了巨大的地址空
Web应用一种由前端浏览界面和后端服务器构成的软件。前端通过各种浏览器、嵌入的脚本语言和applets等为用户提供丰富的图形用户界面。后端服务器包括静态/动态网页文件、CGI
数字图像的逆半调处理是将二值半调图像恢复为连续色调图像的过程,该技术在许多典型的图像处理中有极大的实用价值。论文首先阐述了数字半调与逆半调技术的发展与现状。进一步
互联网中网页和它们之间的链接构成了一个庞大的有向图,称为网络图(Web Graph)。这个图包含了丰富的链接信息和有趣的性质,比如链接数目的幂法则分布,连通域等等。对Web Grap
无线Mesh网络(WirelessMeshNetwork,WMN)结合了移动Adhoc网络和无线局域网的优势,具有高吞吐量、高可靠性、自组织、自修复、部署快、低成本等特点,已成为下一代无线网络的研究热