【摘 要】
:
作为动态语言的代表之一,Python因其代码简洁、开发迅速、拥有丰富的第三方库,在工业界大受欢迎。然而,由于缺少静态类型信息,许多软件工程活动(如程序理解、软件调试、静态缺陷检测等)无法有效地在Python程序中开展。为此,Python社区提出了静态类型标注提案,即允许开发者以标注形式表明程序实体的类型。类型标注不强制规定Python程序实体的类型,不作为代码的一部分被解释执行。类型标注可以被类型
论文部分内容阅读
作为动态语言的代表之一,Python因其代码简洁、开发迅速、拥有丰富的第三方库,在工业界大受欢迎。然而,由于缺少静态类型信息,许多软件工程活动(如程序理解、软件调试、静态缺陷检测等)无法有效地在Python程序中开展。为此,Python社区提出了静态类型标注提案,即允许开发者以标注形式表明程序实体的类型。类型标注不强制规定Python程序实体的类型,不作为代码的一部分被解释执行。类型标注可以被类型推导等其他分析方法和工具解析利用,进而提高分析精度。然而,类型标注能够在多大程度上帮助类型推导,以及在有限时间和资源条件下开发者该如何进行类型标注,尚未有相关工作展开研究。本文研究面向类型推导的Python类型标注,从类型标注的有效性分析和类型标注点推荐两个方面展开。主要工作包括:·对现有类型推导引擎进行了扩展,设计实现了一个支持类型标注的类型推导工具。该工具既支持开源标注集TypeShed作为外部标注的直接集成,也支持项目本身的内部标注。在集成了类型标注后,该工具可以有效地改善原有的类型推导结果。并借助一个开源类型标注集TypeShed,对外部类型标注在改善类型推导结果方面的有效性进行了实验分析。在11个开源Python项目中的实验结果表明:外部类型标注有效地改善了类型推导的效果,且类型标注对局部变量的类型推导结果的增益最为显著。·提出了一种面向类型推导的类型标注点推荐方法TARank,对可标注的Python程序变量进行性价比排序,即希望能够通过标注更少的类型信息来达到更好的类型推导效果。实验结果表明:TARank能够适用于实际大型Python项目,推荐结果可以有效地改善类型推导效果,在某些场景下,标注排序越靠前的变量对类型推导的增益越高。本文工作的结果可以为后续类型标注和类型推导的研究工作提供启发,也能够直接为程序员在有限资源条件下进行类型标注提供实际指导。
其他文献
北京地铁27号线西二旗站南端明挖区间位于G7(京新)高速公路与既有地铁13号线之间的狭长地带,施工场地非常局促。该区间超近距离平行穿越G7高速路基段与既有地铁13号线路基段,风
临床护理带教是带教老师在临床实践中进行现场教学的组织形式,是护理教学的重要组成部分,是培养学生理论联系实际及综合能力的关键阶段[1].如何更好地完成临床护理带教,培养
目的探讨整体护理干预对老年痴呆患者认知功能的影响。方法将70例老年痴呆患者使用单双号分组法分为对照组和观察组各35例,对照组给予常规护理,观察组在此基础上给予整体护理
培养什么人,是教育的首要问题。改革开放40年来,高校思想政治工作始终坚持正确的政治方向,牢牢抓住“培养什么人、怎样培养人、为谁培养人”这个根本问题,在实践中发展,在探
<正>突出政治教育,提升党性修养。为解决部分年轻干部理想信念不够坚定、理论储备不系统、政治要求不高等问题,华阴市委组织部联合市委党校,开展党性"铸魂"工程,为年轻干部补
目的探讨经皮自体骨髓移植治疗骨折延迟愈合、不愈合的疗效.方法对11例骨折不愈合、4例延迟愈合患者,在C臂X线机透视下将所取自体红骨髓注射至骨折延迟愈合、不愈合部位.定期
我们国家正处在改革创新转型发展的时期,价值取向多元、道德观念复杂,人民群众热切期盼着良好的道德风尚的回归。这是我国公民道德建设的新的"窗口期"。"立德树人",重在育人;
为了调查当前初中生对于校园霸凌的态度,本文选取309名初中生为研究对象,采用初中生校园霸凌正式量表对被试施测,结果发现:(1)初中生校园霸凌态度呈现良好状态,但是在对校园
目的探讨雌二醇屈螺酮片对更年期综合征患者内分泌及免疫功能的影响。方法将60例更年期综合征患者随机分为两组,各30例。对照组患者给予戊酸雌二醇片治疗,观察组患者给予雌二
根据装置特点和优化方案,对洛阳分公司两套催化裂化装置的进料结构进行了调整,Ⅰ套FCC装置由加工大部分闪蒸塔底油、掺炼部分精制蜡油改为全部加工精制蜡油,Ⅱ套FCC装置由加