【技术实现步骤摘要】
面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质
本专利技术属于软件开发领域,具体涉及面向区块链应用中智能合约的代码自动推荐
,特别涉及一种面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质。
技术介绍
一个完整的区块链应用离不开用户编写的智能合约,用户的应用程序通过区块链网络的Peer节点,调用智能合约。智能合约,是使用高级语言编写的一段代码,主要用于读取和操作账本上的数据。智能合约是一座连接用户应用和账本的桥梁。用户的应用可直接和智能合约打交道,智能合约也可直接和账本进行交互。在整个区块链系统中,智能合约是系统与用户接触的接口,是应用的载体,是区块链向用户提供服务的用户界面。随着区块链得到越来越广泛的应用,智能合约相关的编程语言,如solidity语言,也应用的越来越多,这些语言本身也提供了相关的一些库供开发人员去调用,以提高开发效率。但是智能合约编程不同于现有的软件工程过程,一旦智能合约编程上传或发布,即使有缺陷,也无法通过打补丁进行修复。此外,由于区块链应用还处在初期,智能合约编程对于很多开发人员来说却不容易,要搜索可用的智能合约程序代码并不容易。现有的程序搜索技术并没有针对智能合约相关程序进行分析,建立程序库,因此不适用于智能合约程序代码的搜索。
技术实现思路
本专利技术的目的在于针对上述技术问题,提供一种面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质。实现本专利技术目的的技术解决方案为:一种面向智能合约的代码自动推荐方法,所述 ...
【技术保护点】
1.一种面向智能合约的代码自动推荐方法,其特征在于,所述方法包括以下步骤:/n步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;/n步骤2,对所述智能合约描述信息进行自然语言预处理;/n步骤3,抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;/n步骤4,对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);/n步骤5,提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;/n步骤6,针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。/n
【技术特征摘要】
1.一种面向智能合约的代码自动推荐方法,其特征在于,所述方法包括以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对所述智能合约描述信息进行自然语言预处理;
步骤3,抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
步骤5,提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。
2.根据权利要求1所述的面向智能合约的代码自动推荐方法,其特征在于,步骤2所述对智能合约描述信息进行自然语言预处理,具体包括:对智能合约描述信息进行词语切分和词性标注。
3.根据权利要求1或2所述的面向智能合约的代码自动推荐方法,其特征在于,步骤3所述抽取智能合约描述信息的动名词短语,具体是通过下表1所示的正则表达式识别;
表1动名词短语识别正则表达式
表1中,MD表示情态动词;VB.*表示不同类别的动词,包括:VB-动词基础形式,VBG-动名词现在分词,VBN-动词过去分词,VBD-动词过去式,VBP-动词非第三人称单数,VBZ-动词第三人称单数;POS-词性;NN.*表示不同类别的名词,包括NN-单数或物质名词,NNS-名词复数,NNP-名词单数,NNPS-复数专有名词;JJ表示形容词;RB表示副词;DT表示定冠词;IN*表示任意介词或从属连词;“VVP”表示具有开放式从句的VP;CC表示连词;CD表示数词以及TO作为介词或不定式标记;符号“?”表示前面的字符是可选的;“+”表示前面项目的一个或多个实例;“*”表示前面项目的零个或多个实例;“-”表示连接多个实例。
4.根据权利要求3所述的面向智能合约的代码自动推荐方法,其特征在于,步骤5中所述智能合约代码的属性X包括代码中的标识符和所调用的API名称。
5.根据权利要求4所述的面向智能合约的代码自动推荐方法,其特征在于,步骤6所述针对新的智能合约描述,查询所述智能...
【专利技术属性】
技术研发人员:孙小兵,李斌,李云,张正华,张福安,
申请(专利权)人:扬州大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。