首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 93 毫秒
1.
代码注释作为软件中的重要组成部分,在软件维护、复用等领域中发挥着重要作用。代码注释自动生成技术旨在减轻人工编写注释的工作量,从而提高软件开发效率。现有的注释自动生成方法分为基于规则、文本摘要、数据驱动、主题模型、深度学习等层次。综述了代码注释自动生成的相关概念,对比总结各类代码注释自动生成方法,对近年来代码注释自动生成相关应用进行了梳理和总结,最后对注释自动生成所面临的挑战进行了分析,展望了该领域未来的研究。  相似文献   

2.
针对大多数软件代码注释数量少、质量低的问题,提出了一种自动生成代码注释的方法。利用Nicad检测出克隆代码,提取出这些代码以及相应的注释,对代码和注释分别进行精简优化,将注释与代码匹配映射,为代码自动生成注释。对5款软件中的代码注释进行手动验证并评估注释结果,实验结果发现28%的代码注释是良好的,同时将注释报告给5位专家,专家评估结果为两款软件的代码注释为良好。实验结果及用户调研表明,该方法对于自动生成代码注释是可行、有效的。  相似文献   

3.
智能合约是一种以代码的方式执行合同条款的可计算交易协议,其应用场景与规模日益增长,承载着多达数十亿美元的各类资产。由于其代码缺陷可能会造成严重的经济损失,因此智能合约的可信开发成为技术关键。为此,提出了一种基于集合论语言Event-B的智能合约可信验证与自动生成方法。Event-B方法是一种基于精化的形式化方法,可用于规约、设计和验证软件系统。通过对智能合约的模型验证和可执行代码的自动生成技术,研发了自动转换工具EB2S,打通了形式化模型和智能合约编程语言的语义鸿沟和技术壁垒。最后,选取典型的在线支付智能合约场景,应用基于Event-B的智能合约模型自动生成合约代码,验证了EB2S转换工具的有效性。  相似文献   

4.
陈翔  杨光  崔展齐  孟国柱  王赞 《软件学报》2021,32(7):2118-2141
在软件的开发和维护过程中,与代码对应的注释经常存在缺失、不足或者与代码实际内容不匹配等问题,但手工编写代码注释对开发人员来说费时费力,且注释质量难以保证,因此亟需研究人员提出有效的代码注释自动生成方法.代码注释自动生成问题是当前程序理解研究领域的一个研究热点,对该问题进行了系统综述.主要将已有的自动生成方法细分为3类:...  相似文献   

5.
荆璞  王盈  胡思琪  朱涛  孟晗 《福建电脑》2023,(3):101-103
快速识别程序源码语义,可以辅助编程学习者理解代码。为提高程序开发效率,有必要开发一个代码注释自动生成系统。本文提出了一个代码注释自动生成系统的开发方案,对于Seq2seq模型如何训练、中文数据集如何处理和提高注释质量等问题提出了具体实施方案。实践结果表明,采取该方案制成的代码注释自动生成系统能够基本满足辅助理解代码的需要。  相似文献   

6.
基于卷积神经网络的代码注释自动生成方法   总被引:1,自引:0,他引:1  
彭斌  李征  刘勇  吴永豪 《计算机科学》2021,48(12):117-124
自动化代码注释生成技术通过分析源代码的语义信息生成对应的自然语言描述文本,可以帮助开发人员更好地理解程序,降低软件维护的时间成本.大部分已有技术是基于递归神经网络(Recurrent Neural Network,RNN)的编码器和解码器神经网络实现的,但这种方法存在长期依赖问题,即在分析距离较远的代码块时,生成的注释信息的准确性不高.为此,文中提出了一种基于卷积神经网络(Convolutional Neural Network,CNN)的自动化代码注释生成方法来缓解长期依赖问题,以生成更准确的注释信息.具体而言,通过构造基于源代码的CNN和基于AST的CNN来捕获源代码的语义信息.实验结果表明,与DeepCom和Hybrid-DeepCom这两种最新的方法相比,在常用的BLEU和METEOR两种评测指标下,所提方法能更好地生成代码注释,且执行时间更短.  相似文献   

7.
代码注释可以帮助开发人员快速理解代码,降低代码维护成本。为了保留代码的结构信息,针对经典的Seq2Seq模型将代码的结构信息压缩为序列,导致结构信息丢失的问题,提出使用Tree-LSTM编码器直接将代码转化成抽象语法树进行编码,使注释生成模型能有效获取代码的结构信息,提升注释生成效果。采用基于注意力机制的Tree2Seq模型实现代码注释生成任务,避免了编码器端将所有输入信息压缩为固定向量,导致部分信息丢失的情况。通过在Java和Python 2种编程语言的数据集上进行实验,使用3种机器翻译常用的自动评测指标进行评估验证,并选取一部分测试数据进行了人工评估。实验结果表明,基于注意力机制的Tree2Seq模型能为解码器提供更全面且丰富的语义结构信息,为后续实验分析和改进提供指导。  相似文献   

8.
牛长安  葛季栋  唐泽  李传艺  周宇  骆斌 《软件学报》2021,32(7):2142-2165
代码注释在软件质量保障中发挥着重要的作用,它可以提升代码的可读性,使代码更易理解、重用和维护.但是出于各种各样的原因,有时开发者并没有添加必要的注释,使得在软件维护的过程中,往往需要花费大量的时间来理解代码,大大降低了软件维护的效率.近年来,多项工作利用机器学习技术自动生成代码注释,这些方法从代码中提取出语义和结构化信...  相似文献   

9.
潘兴禄  刘陈晓  王敏  邹艳珍  王涛  谢冰 《软件学报》2023,34(9):4114-4131
软件代码注释生成是软件工程领域近期研究的一个重要问题.目前很多研究工作已经在包含大量<代码片段,注释语句>对的开源数据集上取得了较好效果.但在企业应用中,待注释的代码往往是一个软件项目库,其必须首先决策在哪些代码行上生成注释更好,而且待注释的代码片段大小、粒度各不相同,需要研究提出一种注释决策和生成一体化的、抗噪音的代码注释生成方法.针对这个问题,提出一个面向软件项目的代码自动注释生成方法CoComment.所提方法能够自动抽取软件项目文档中的领域基本概念,并基于代码解析与文本匹配进行概念传播和扩展.在此基础上,通过定位概念相关的代码行/段进行自动注释决策,最终利用模板融合概念和上下文生成具有高可读性的自然语言代码注释.目前CoComment已经在3个企业软件项目、超过4.6万条人工代码注释数据上进行了对比试验.结果表明,所提方法不仅能够有效地进行代码注释决策,其注释内容与现有方法相比也能够提供更多有益于理解代码的信息,从而为软件项目代码的注释决策和注释生成问题提供了一种一体化的解决方案.  相似文献   

10.
代码注释有助于提高程序的可读性和可理解性,而不断地创建和更新注释非常费时费力,这将影响对软件的理解、重用和维护.自动代码注释试图解决此类问题,其中代码的表示和文本生成是研究的核心问题.该文提出一种基于编码器-解码器结构的自动生成Java代码注释模型.方法将代码的顺序序列和代码结构作为单独的输入进行处理,允许模型学习Java方法的结构和语义;以一定的概率从模型生成的预测序列和真实词序列中采样作为下一步的输入,以提高模型的纠错恢复能力.通过与3种典型自动代码注释方法在11个Java项目上的对比实验,结果表明,提出的模型在BLEU得分上提升了16.1%,有助于提高自动代码注释的性能.  相似文献   

11.
针对智能合约的DoS漏洞可能在拍卖退款交易中造成资源耗尽问题进行了研究,设计了拍卖退款交易中智能合约DoS漏洞优化方案。首先构造可能存在DoS漏洞的智能合约,然后采用增加映射以及压栈出栈方法完成漏洞优化,最后通过形式化验证运行优化后的智能合约,检测其是否存在逻辑错误或不一致性。实验结果表明,采用该方法优化的智能合约能够避免因资源耗尽产生的拒绝服务,与带有漏洞智能合约相比,优化后的智能合的等效内存使用量减少了约62.8%,运行时间也有缩短。  相似文献   

12.
从计算机科学的角度对法律合约与智能合约的一致性研究现状进行了总结和分析。首先,分别对法律合约描述语言和智能合约开发语言进行了分类和分析,总结了每种语言的特点;其次,根据合同自动化执行的三个发展阶段对法律合约和智能合约的一致性内涵进行了分析和讨论;分别基于形式化模型和合约模板总结了由法律合约生成智能合约代码的方法和关键技术,并对其进行了讨论和评价;最后,对未来法律合约与智能合约的一致性研究进行了总结和展望。  相似文献   

13.
方燚飚  周创明 《计算机应用研究》2020,37(12):3686-3690,3698
针对传统代币中存在的公信力不足、监管困难等问题,结合区块链和智能合约技术,设计了一种去中心化的区块链代币系统。以此区块链代币系统为基础,通过部署代币合约、众筹合约,构建了一个基于区块链的众筹系统,实现了基本的众筹功能。同时设计了资金管理合约,实现了众筹成功后对发起者的监督和资金的管理。最后通过以太坊平台进行系统测试,分析了该代币系统的功能性、安全性以及时间性能。结果表明,基于区块链的代币系统在实现代币基本功能的同时,能够有效提升代币的安全性和功能性。  相似文献   

14.
传统医疗数据共享模型存在访问效率低下和访问控制中心化问题。针对医疗数据动态性强、数据量大和隐私度高的特点,提出一种基于智能合约的分类分级属性访问控制方法。首先,对属性和级别进行划分,形成属性类别和资源隐私等级,根据资源等级设计不同粒度的访问控制策略,合理配置属性信息,提升用户访问效率;然后,利用智能合约为访问控制提供去中心化的执行环境,允许自动化策略判决,解决集中式访问控制带来的安全隐患;最后,实验结果表明该方案能够有效提高访问控制效率,实现访问控制智能判决,保证医疗数据的安全共享。  相似文献   

15.
由于区块链不可窜改的特性,部署到区块链上的智能合约不可更改.为了提高合约的安全性,防止智能合约出现整数溢出、短地址攻击、伪随机等问题,在合约部署之前需对合约进行漏洞检测.针对智能合约的整数溢出漏洞利用符号执行进行分析研究,对现有符号执行方法进行调查发现检测速度较慢,从而提出一种自底向上求解约束的改进符号执行方法,并结合深度优先与广度优先进行路径选择从而提高符号执行的代码覆盖率.实验结果表明,改进符号执行在选取的100份含溢出漏洞的智能合约中检测正确率达84%,平均检测效率提高了20%,在中等规模智能合约中检测效率提升显著,检测结果正确率较高.  相似文献   

16.
区块链技术的发展与应用使构建更为鲁棒和灵活的僵尸网络命令控制信道成为可能.为了更好地研究这类潜在的新型僵尸网络威胁,提出基于区块链智能合约的高对抗性僵尸网络模型——SCBot.SCBot模型采用分层混合拓扑结构,在僵尸子网层构建基于智能合约的命令传递信道,并建立可信度评估机制判别节点真实性,从流量和终端两大层面提升网络...  相似文献   

17.
曹迪迪  陈伟 《计算机应用》2019,39(4):1073-1080
针对以太坊平台提供的数据管理功能简单且存在低吞吐率和高延迟的问题,提出一种基于智能合约的以太坊可信存证机制。首先针对以太坊平台暴露的数据管理问题提出一个基于智能合约的以太坊可信存证框架,然后通过集中化数据统一处理、认证数据分布式存储以及高效动态取证这几个方面阐述所提机制的框架和实现,最后通过基于智能合约的系统开发表明了该机制的可实现性。实验及分析结果表明,该方法与传统关系数据库存证相比,增加了处理可信性、存储可信性和访问可信性;与区块链存证相比,丰富了数据管理功能、降低了区块存储成本、提高了存证效率。  相似文献   

18.
通过概述区块链智能合约的运作原理及应用研究现状,对现存项目和存在的问题进行分析总结.首先,基于区块链智能合约整体架构介绍合约模型及运行原理,以Ethereum、Hyperledger Fabric和EOSIO三大区块链平台为例分析智能合约部署原理并对三大平台进行对比分析.针对国内外区块链智能合约的应用研究进行归纳总结,并讨论区块链智能合约未来创新应用和发展趋势.从金融交易、物联网和医疗应用三大应用研究领域介绍了基于Ethereum和Hyperledger Fabric平台的区块链智能合约应用现状,进一步探讨了基于EOS(enter-prise operation system)的应用研究和其他应用领域研究现状.最后,从隐私、机制设计与安全、性能和形式化验证等智能合约自身存在问题及三大平台应用存在的不足对区块链智能合约的未来研究方向进行分析和展望.  相似文献   

19.
智能合约是区块链技术应用的一个重要场景,智能合约技术实现了区块链的可编程化,提高了其扩展性,有广阔的应用前景。然而,一系列关于智能合约的安全事件造成了大量经济损失,削弱了人们的信心,安全性问题已经成为制约智能合约进一步发展的关键问题。如果合约设计和代码实现的过程中存在缺陷,可能会造成严重后果。而智能合约发布后无法修改,因此,在智能合约发布前对其正确性做出验证尤为重要。近年来,国内外学者在智能合约的验证领域取得了大量成果,但对这些研究成果的系统分析和总结相对较少。对以太坊的交易过程、gas 机制、存储结构、编写语言做了简要介绍,在此基础上调查归纳了智能合约中常见的8种漏洞类型,解释了漏洞产生的原因,回顾了一些真实发生的安全事件并给出了漏洞示例代码;根据不同的技术手段,如符号执行、模型检测、定理证明等,对智能合约的形式化验证工作做分类介绍,分析了各种方法的优劣,并选取了3个开源的自动化验证工具Mythril、Slither和Oyente,从运行效率、检测漏洞类型以及准确率等方面作出实验评估和对比;研究了目前已有的相关综述文章,总结了这些研究的区别与优势;概述了智能合约的漏洞检测技术中仍存在的关键问题,对智能合约验证工作的现状进行了分析和展望,提出了未来能够进一步研究的方向。  相似文献   

20.
由于传统公钥基础设施(public key infrastructure,PKI)技术中心化的存储管理方式以及证书颁发、撤销不透明的特点存在着安全性问题,且多个CA机构之间互不可信,实现交叉认证具有一定难度,提出一种基于智能合约的去中心化身份管理及认证模型。通过基于区块链的智能合约实现用户多类型身份数据的发布、认证以及撤销,达到管理用户身份数据及在不同场景中根据不同的认证需求进行身份认证的目的。对模型的安全性进行了分析。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号