基于开源软件的C++关键语言特性实证研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:cuitlcm
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
日益兴盛的开源软件为语言研究者提供了丰富的实验资源。利用软件度量、数据挖掘、统计分析等技术对开源软件进行量化分析,成为了解程序设计语言的使用和发展趋势的关键途径。C++是最重要的程序设计语言之一,广泛用于大规模、高复杂度的开源软件的开发。然而,时至今日,却很少有研究者通过定量化的实验方法来分析C++语言在软件开发中的使用情况,导致人们无法客观评估C++和其它语言在编程方法、编程效率、代码质量等方面的差异,同时无法了解C++语言特性的使用规律,以及在使用过程中所出现的主要问题。为了改变C++实证研究相对匮乏的现状,本文全面分析C++关键语言特性在开源软件中的使用情况。具体而言,本文利用程序分析工具对开源代码进行语义分析,并采用软件度量方法对程序语义信息进行量化,最后使用统计学方法对实验数据进行定量分析。实验结果不仅说明了C++、C≠和Java在面向对象特性上的差异,而且揭示了C++模板、并发设施以及标准库在开源软件中的使用规律和常见问题。具体而言,本文的工作主要包括以下四方面:(1)面向对象特性的实证研究为了比较C++、C#和Java的面向对象特性,采用23种面向对象度量指标来定量对比78组开源程序,实验结果说明了三种语言在程序规模、复杂度、耦合性、内聚性、继承性、封装性、多态性与可复用性等面向对象特性上的差异。这项研究成果有助于人们理解不同语言的面向对象特性,并帮助软件开发者在实现面向对象系统时选择合适的程序设计语言。(2)模板的实证研究为了探索C++泛型程序的实现方式,定量分析了新型模板特性的使用、STL(Standard Template Library,标准模板库)的使用、模板使用的广泛性以及模板的作用。通过对50个开源软件系统的5.7亿行C++代码进行软件数据分析,发现了模板的使用规律,并揭示了模板在实际应用中所存在的问题,包括模板特性的误用、用户自定义模板的滥用以及泛型函数宏的过度使用等。这项研究成果不仅有助于人们准确地认识模板的实际用途,而且有助于程序员高效地使用模板来编写可复用的软件模块。(3)并发设施的实证研究为了研究C++并发程序的实现方式,定量分析了并发设施的使用、并发同步的管理、标准并发设施与第三方并发设施的关系以及影响并发设施使用的因素。通过对492个并发软件的1.3亿行C++代码进行语义信息提取和数据统计分析,挖掘了并发设施的使用规律,并发现了并发设施在实际应用中所存在的主要问题,包括promise等并发设施的误用、并发代码中异常处理设施的缺失以及线程安全的数据结构的缺失等。这项研究成果不仅为C++设计者改进并发设施的设计提供了指导性信息,而且为软件开发者合理运用并发设施指明了方向。(4)标准库的实证研究为了考察C++语言库对软件开发的影响,定量分析了标准库使用的广泛性、新型标准库与传统标准库的差异、废弃标准库设施的使用趋势以及影响标准库使用的因素。实验采用30个开源软件的1.5亿行C++代码,并利用统计学方法对标准库语义信息进行量化和统计分析。实验结果揭示了标准库的使用规律以及程序员在使用标准库时所存在的主要问题,包括未充分使用新型标准库以及过度使用废弃标准库设施等。这项研究成果有助于程序员高效地理解和运用C++标准库。
其他文献
基于临近地铁线路的某大型深基坑工程,对基坑设计和施工方案、施工期间地铁结构监测数据进行分析。研究表明:面积和深度均较大的基坑进行分期实施,可以有效控制临近地铁结构
与全球强劲围剿态势相比,中国对互联网企业的反垄断监管显得有些沉寂。
本文针对房屋建筑工程施工造价控制与管理开展了具体地论述,从房屋建筑工程各项目各阶段的工程造价动态管理办法及相关控制方法分别进行了详细阐述.希望能够使建筑工程造价管
在特征尺寸为微米和亚微米量级的物体上进行加持、吸附、抓取、转移、装配和注射等操作称为微操作。执行微操作的器械设备称为微操作系统或者微操作机器人。近年来,微操作系
物联网(Internet of Things)作为下一代信息科技发展的关键组成部分,是信息化与自动化“两化”融合时代的重要发展阶段。无线传感器网络(Wireless Sensor Networks),是物联网
文字是促进人类文明发展的一个重要信息载体,它拥有高度的抽象性和直观的表达能力,因此自然场景文字检测在智能交通、移动导盲、图像检索等领域有着重要的应用。区别于印刷体
本文试图从社会支持与金钱抵御痛苦的理论(Zhou&Gao,2008)出发来阐述二者对于我们心理和谐的重要性。此外。我还将试图从这个理论出发,阐述在实施援助时会遇到的困境。
目的探讨外周血SEPT9基因甲基化检测在结直肠癌筛查及随访中的应用。方法回顾性分析2014年10月至2015年12月接受结直肠癌筛查人群共计783例,其中确诊结直肠癌患者72例,非结直肠癌患者711例。对所有纳入患者进行外周血SEPT9甲基化检测和病理检查。以病理诊断为金标准,采用ROC曲线分析SEPT9阳性对结直肠癌的诊断价值,术后随访1年,观察外周血SEPT9基因甲基化和患者生存情况的关系。应
作为学校卫生工作纲领性行政规章的《学校卫生工作条例》已颁布了20余年,其中有关学校卫生监督工作的内容已不适应当前学校卫生工作实际的要求,特别是欠缺学校卫生监督工作的基
目的探讨精浆果糖及精液抗精子抗体与精子参数关系对男性不育患者的影响。方法选取2015年1月~2015年12月我院收治的男性不育患者64例作为研究对象,以精浆果糖及精液抗精子抗