程序要素提取方法及装置制造方法及图纸

技术编号:27219609 阅读:30 留言:0更新日期:2021-02-04 11:38
本申请实施例提供一种程序要素提取方法及装置,可用于大数据技术领域,方法包括:根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。本申请能够有效提高程序要素的提取全面性及准确性,有效提高程序要素的提取效率,进而能够有效提高应用提取的程序要素进行源程序迁移等场景的实施效率及准确性。行源程序迁移等场景的实施效率及准确性。行源程序迁移等场景的实施效率及准确性。

【技术实现步骤摘要】
程序要素提取方法及装置


[0001]本申请涉及数据处理
,特别涉及大数据
,具体涉及程序要素提取方法及装置。

技术介绍

[0002]随着互联网行业快速发展,基于X86架构的开发平台分布式架构日趋成熟,展现了成本可控、弹性伸缩、技术体系开放等优点。同时,为确保关键信息系统技术安全,去IOE成为金融行业趋势,关键技术需自有化。例如,当前采用的基于IBM大型机技术的架构体系的大型金融机构,亟待向基于X86架构的分布式架构转型。在转型过程中,不能影响既有的业务开展,需保持原有程序逻辑不变,因此有海量的源代码需要迁移、分析。因此,需要一种高效、灵活的代码分析工具来辅助架构转型。
[0003]代码分析是一个系统性的工作,可以归结为程序要素管理。程序要素包括源程序、接口、函数、sql语句、表结构、表字段等等,以及程序要素之间的调用、访问关系,比如有哪些程序访问了表A,比如哪些程序调用了公共函数B。在架构转型工程的不同阶段,往往有不同的代码分析需求。
[0004]目前,现有的代码分析工具,往往是基于工程现阶段的具体需求,单独开放一个工具,其技术原理,一般是把源代码当作一个大字符串,基于程序语法的关键字定义把某一种程序要素提取出来。然而,这种方法具有多种不足,包括代码开放效率低,需要大量测试以防止程序问题导致程序要素的搜索遗漏、准确性差等问题。

技术实现思路

[0005]针对现有技术中的问题,本申请提供一种程序要素提取方法及装置,能够有效提高程序要素的提取全面性及准确性,有效提高程序要素的提取效率,进而能够有效提高应用提取的程序要素进行源程序迁移等场景的实施效率及准确性。
[0006]为解决上述技术问题,本申请提供以下技术方案:
[0007]第一方面,本申请提供一种程序要素提取方法,包括:
[0008]根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;
[0009]输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
[0010]进一步地,在所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素之前,还包括:
[0011]应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素;
[0012]存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,
所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
[0013]进一步地,所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素,包括:
[0014]接收程序要素提取请求,其中,该程序要素提取请求中包含有目标要素提取信息,且该目标要素提取信息中包括程序要素的目标属性信息;
[0015]基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序;
[0016]应用所述目标遍历程序遍历各个所述源程序各自对应的语法树,以查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
[0017]进一步地,所述输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息,包括:
[0018]生成包含有与所述目标属性信息对应的全部的程序要素的程序要素清单和/或程序要素之间的关系数据,其中,所述程序要素清单用于存储与所述目标属性信息对应的全部的程序要素的标识和对应的属性信息。
[0019]进一步地,所述基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序,包括:
[0020]根据所述目标属性信息在预存储的插件中查找是否包含有满足所述目标属性信息的提取需求的目标插件,若是,则在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序;
[0021]相对应的,所述应用所述目标遍历程序遍历各个所述源程序各自对应的语法树,以查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据,包括:
[0022]运行所述目标遍历程序遍历各个所述源程序各自对应的语法树,基于配置有所述目标插件的所述参数表运行所述目标插件查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
[0023]进一步地,所述基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序,还包括:
[0024]若经判断获知所述目标属性信息在预存储的插件中未包含有满足所述目标属性信息的提取需求的目标插件,则接收满足所述目标属性信息的提取需求的目标插件;
[0025]在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序。
[0026]第二方面,本申请提供一种程序要素提取装置,包括:
[0027]程序要素提取模块,用于根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;
[0028]信息输出模块,用于输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
[0029]进一步地,还包括:
[0030]语法树生成模块,用于应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素;
[0031]程序要素表存储模块,用于存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
[0032]第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的程序要素提取方法。
[0033]第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的程序要素提取方法。
[0034]由上述技术方案可知,本申请提供的一种程序要素提取方法及装置,方法根据目标要本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序要素提取方法,其特征在于,包括:根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。2.根据权利要求1所述的程序要素提取方法,其特征在于,在所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素之前,还包括:应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素;存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。3.根据权利要求2所述的程序要素提取方法,其特征在于,所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素,包括:接收程序要素提取请求,其中,该程序要素提取请求中包含有目标要素提取信息,且该目标要素提取信息中包括程序要素的目标属性信息;基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序;应用所述目标遍历程序遍历各个所述源程序各自对应的语法树,以查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。4.根据权利要求2所述的程序要素提取方法,其特征在于,所述输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息,包括:生成包含有与所述目标属性信息对应的全部的程序要素的程序要素清单和/或程序要素之间的关系数据,其中,所述程序要素清单用于存储与所述目标属性信息对应的全部的程序要素的标识和对应的属性信息。5.根据权利要求3所述的程序要素提取方法,其特征在于,所述基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序,包括:根据所述目标属性信息在预存储的插件中查找是否包含有满足所述目标属性信息的提取需求的目标插件,若是,则在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的...

【专利技术属性】
技术研发人员:张浩黄贵敏戴明海林德坤
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1