CN112306499B - 程序要素提取方法及装置 - Google Patents

程序要素提取方法及装置 Download PDF

Info

Publication number
CN112306499B
CN112306499B CN202011330861.8A CN202011330861A CN112306499B CN 112306499 B CN112306499 B CN 112306499B CN 202011330861 A CN202011330861 A CN 202011330861A CN 112306499 B CN112306499 B CN 112306499B
Authority
CN
China
Prior art keywords
program
target
program element
information
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011330861.8A
Other languages
English (en)
Other versions
CN112306499A (zh
Inventor
张�浩
黄贵敏
戴明海
林德坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202011330861.8A priority Critical patent/CN112306499B/zh
Publication of CN112306499A publication Critical patent/CN112306499A/zh
Application granted granted Critical
Publication of CN112306499B publication Critical patent/CN112306499B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

程序要素提取方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及大数据技术领域,具体涉及程序要素提取方法及装置。
背景技术
随着互联网行业快速发展,基于X86架构的开发平台分布式架构日趋成熟,展现了成本可控、弹性伸缩、技术体系开放等优点。同时,为确保关键信息系统技术安全,去IOE成为金融行业趋势,关键技术需自有化。例如,当前采用的基于IBM大型机技术的架构体系的大型金融机构,亟待向基于X86架构的分布式架构转型。在转型过程中,不能影响既有的业务开展,需保持原有程序逻辑不变,因此有海量的源代码需要迁移、分析。因此,需要一种高效、灵活的代码分析工具来辅助架构转型。
代码分析是一个系统性的工作,可以归结为程序要素管理。程序要素包括源程序、接口、函数、sql语句、表结构、表字段等等,以及程序要素之间的调用、访问关系,比如有哪些程序访问了表A,比如哪些程序调用了公共函数B。在架构转型工程的不同阶段,往往有不同的代码分析需求。
目前,现有的代码分析工具,往往是基于工程现阶段的具体需求,单独开放一个工具,其技术原理,一般是把源代码当作一个大字符串,基于程序语法的关键字定义把某一种程序要素提取出来。然而,这种方法具有多种不足,包括代码开放效率低,需要大量测试以防止程序问题导致程序要素的搜索遗漏、准确性差等问题。
发明内容
针对现有技术中的问题,本申请提供一种程序要素提取方法及装置,能够有效提高程序要素的提取全面性及准确性,有效提高程序要素的提取效率,进而能够有效提高应用提取的程序要素进行源程序迁移等场景的实施效率及准确性。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种程序要素提取方法,包括:
根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;
输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
进一步地,在所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素之前,还包括:
应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素;
存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
进一步地,所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素,包括:
接收程序要素提取请求,其中,该程序要素提取请求中包含有目标要素提取信息,且该目标要素提取信息中包括程序要素的目标属性信息;
基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序;
应用所述目标遍历程序遍历各个所述源程序各自对应的语法树,以查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
进一步地,所述输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息,包括:
生成包含有与所述目标属性信息对应的全部的程序要素的程序要素清单和/或程序要素之间的关系数据,其中,所述程序要素清单用于存储与所述目标属性信息对应的全部的程序要素的标识和对应的属性信息。
进一步地,所述基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序,包括:
根据所述目标属性信息在预存储的插件中查找是否包含有满足所述目标属性信息的提取需求的目标插件,若是,则在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序;
相对应的,所述应用所述目标遍历程序遍历各个所述源程序各自对应的语法树,以查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据,包括:
运行所述目标遍历程序遍历各个所述源程序各自对应的语法树,基于配置有所述目标插件的所述参数表运行所述目标插件查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
进一步地,所述基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序,还包括:
若经判断获知所述目标属性信息在预存储的插件中未包含有满足所述目标属性信息的提取需求的目标插件,则接收满足所述目标属性信息的提取需求的目标插件;
在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序。
第二方面,本申请提供一种程序要素提取装置,包括:
程序要素提取模块,用于根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;
信息输出模块,用于输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
进一步地,还包括:
语法树生成模块,用于应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素;
程序要素表存储模块,用于存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的程序要素提取方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的程序要素提取方法。
由上述技术方案可知,本申请提供的一种程序要素提取方法及装置,方法根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息,能够有效提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强,程序要素提取的自动化程度高,进而能够有效提高应用提取的程序要素进行程序要素管理及分析的效率及准确性,以有效提高源程序迁移等场景的实施效率及准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的程序要素提取方法的第一种流程示意图。
图2是本申请实施例中的程序要素提取方法的第二种流程示意图。
图3是本申请实施例中的程序要素提取方法中步骤100的第一种具体流程示意图。
图4是本申请实施例中的程序要素提取方法的第三种流程示意图。
图5是本申请实施例中的程序要素提取方法中步骤100的第二种具体流程示意图。
图6是本申请应用实例提供的语法树的举例示意图。
图7是本申请应用实例提供的数据结构示意图。
图8是本申请应用实例提供的程序要素提取方法的具体实现过程示意图。
图9是本申请实施例中的程序要素提取装置的第一种结构示意图。
图10是本申请实施例中的程序要素提取装置的第二种结构示意图。
图11是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的程序要素提取方法和装置可用于大数据技术领域,也可用于除大数据技术领域之外的任意领域,本申请公开的程序要素提取方法和装置的应用领域不做限定。
针对现有的程序要素提取方式存在的提取效率低、准确性差等问题,金融机构需要新的工具、方法,来实现更高效、准确、灵活的程序要素管理,基于此,本申请分别提供程序要素提取方法、程序要素提取装置、电子设备和计算机可读存储介质的实施例,根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息,使得本申请提供的程序要素提取方式,能够应用预先建立的树形结构的数据库,也就是本申请的一个或多个实施例中提及的语法树,有效提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强,程序要素提取的自动化程度高,进而能够有效提高应用提取的程序要素进行程序要素管理及分析的效率及准确性,以有效提高源程序迁移等场景的实施效率及准确性,进而能够向金融机构提供一种新的代码分析方式及工具来实现更高效、准确、灵活的程序要素管理。
具体通过下述多个实施例分别进行说明。
为了提高程序要素的提取全面性、准确性及效率,本申请提供一种程序要素提取方法的实施例,参见图1,所述程序要素提取方法具体包含有如下内容:
步骤100:根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息。
在步骤100中,程序要素提取装置或代码分析工具首先获取当前的目标要素提取信息,该目标要素提取信息是指用于指示当前所需要的程序要素的搜索关键信息,例如,该目标要素提取信息可以为:程序要素类型;而后可以基于该程序要素类型遍历预存储的各个源程序各自对应的语法树,查找属于该程序要素类型的全部的程序要素。其中,搜索语法树的每个节点均用于表示一个程序要素的程序要素信息,这里的程序要素信息是指程序要素的唯一标识以及对应的属性信息,而程序要素类型即为属性信息中的一种。可以理解的是,搜索程序要素的唯一标识可以为程序要素名。
可以理解的是,本申请中提及的程序要素均可以被认定为是用于进行源程序迁移的程序要素,当然,源程序迁移或源代码迁移的用途场景仅为本申请提及的程序要素的其中一个应用场景,为了满足多元化需求,本申请提及的程序要素也可以用于其他应用场景中,例如通过整理某一类型的全部的程序要素来重新编写源代码等,本申请实施例对此不作限制。
在本申请的一个或多个实施例中,所述程序要素包含有:源程序、接口、函数、sql语句、表结构及表字段等。
步骤200:输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
在步骤200中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。在一种举例中,若当前的程序要素对应在语法树中的节点为子节点,该子节点的程序要素的属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识,还可以包含有父节点标识等。
从上述描述可知,本申请实施例提供的程序要素提取方法,能够有效提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强,程序要素提取的自动化程度高,进而能够有效提高应用提取的程序要素进行程序要素管理及分析的效率及准确性,以有效提高源程序迁移等场景的实施效率及准确性。
为了解决现有的程序要素提取方式存在的程序要素易遗漏、耗时长及扩展性差等问题,在本申请的程序要素提取方法的一个实施例中,参见图2,所述程序要素提取方法的步骤100之前还具体包含有如下内容:
步骤010:应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素。
具体来说,语法树生成程序用于对源码库进行扫描,基于代码语法,生成树形结构的数据库,该数据库的每一个叶子节点都是一个程序要素,比如一个函数,或者一个表。对不同的程序要素,我们标记不同类型,并支持扩展出新的程序要素类型。
步骤020:存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
从上述描述可知,本申请实施例提供的程序要素提取方法,通过对语法树生成程序和代码语法,能够生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强。
为了解决现有的程序要素提取方式存在的每次面临新需求时均需要重新编码而造成的程序复用度低的问题,在本申请的程序要素提取方法的一个实施例中,参见图3,所述程序要素提取方法的步骤100具体包含有如下内容:
步骤110:接收程序要素提取请求,其中,该程序要素提取请求中包含有目标要素提取信息,且该目标要素提取信息中包括程序要素的目标属性信息。
步骤120:基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序。
步骤130:应用所述目标遍历程序遍历各个所述源程序各自对应的语法树,以查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
从上述描述可知,本申请实施例提供的程序要素提取方法,通过目标插件及语法树遍历程序的应用,无需每次面临新需求时均重新对程序要素提取程序进行编码,能够有效提高程序要素提取程序的复用性,进而能够进一步提高程序要素提取效率,并节省人力成本及时间成本,提高研发人员的用户体验。
为了提高程序要素提取结果的获取便捷性及可靠性,在本申请的程序要素提取方法的一个实施例中,参见图4,所述程序要素提取方法的步骤200具体包含有如下内容:
步骤210:生成包含有与所述目标属性信息对应的全部的程序要素的程序要素清单和/或程序要素之间的关系数据,其中,所述程序要素清单用于存储与所述目标属性信息对应的全部的程序要素的标识和对应的属性信息。
为了进一步提高程序复用度,在本申请的程序要素提取方法的一个实施例中,参见图5,所述程序要素提取方法的步骤120具体包含有如下内容:
步骤121:根据所述目标属性信息在预存储的插件中查找是否包含有满足所述目标属性信息的提取需求的目标插件,若是,则执行步骤122;
步骤122:在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序;
相对应的,参见图5,所述步骤130具体包含有如下内容:
步骤131:运行所述目标遍历程序遍历各个所述源程序各自对应的语法树,基于配置有所述目标插件的所述参数表运行所述目标插件查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
从上述描述可知,本申请实施例提供的程序要素提取方法,能够进一步提高程序要素提取程序的复用性,进而能够进一步提高程序要素提取效率。
为了进一步提高程序复用度,在本申请的程序要素提取方法的一个实施例中,参见图5,所述程序要素提取方法的步骤120还具体包含有如下内容:
若经步骤121判断获知所述目标属性信息在预存储的插件中未包含有满足所述目标属性信息的提取需求的目标插件,则执行步骤123;
步骤123:接收满足所述目标属性信息的提取需求的目标插件。
具体来说,若所述目标属性信息在预存储的插件中未包含有满足所述目标属性信息的提取需求的目标插件,则可以向研发人员持有的客户端设备中发送目标插件设置请求,并接受研发人员持有的客户端设备发送的针对该目标插件设置请求形成的目标插件。
步骤122:在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序。
为了进一步说明本方案,本申请还提供一种程序要素提取方法的具体应用实例,涉及金融机构大型信息系统的架构转型过程中的源代码管理,及相关程序要素管理;即针对金融机构架构转型需求,提供了一种新的程序要素提取方法,该程序要素提取方法具有的优势包括:第一是准确,即对某种程序要素的搜索整理,严谨准确,不会出现遗漏。第二是可扩展,程序要素种类很多,该工具需要支持各种不同的程序要素管理,并且支持新的程序要素。第三是高效,对新的需求能快速实现。
具体来说,本申请应用实例提供的程序要素提取方法分成三个部分:
1.采用源码语法树对源码进行基础性管理,对不同程序要素进行分类,并支持扩展分类。
语法树的生成程序对源码库进行扫描,基于代码语法,生成树形结构的数据库,该数据库的每一个叶子节点都是一个程序要素,比如一个函数,或者一个表。
其中,语法树的举例示意图参见图6。
对不同的程序要素,我们标记不同类型,并支持扩展出新的程序要素类型。
2.开发基于源码语法树的遍历程序,基于遍历算法可搜索出全量的程序要素。对树形数据库的遍历有成熟的算法,能遍历到源码的所有程序要素,不会遗漏。
3.针对特定的需求,在上述基础上开发插件,支持对某种程序要素进行特定处理。
某种特定需求,一般是搜索某种特定程序要素清单,或者提取程序要素之间的关系(比如程序对函数的调用关系),只要在源码语法树的遍历程序中增加某个插件,在遍历到每一个节点时,判定该节点的程序要素的类型,如果是符合需求的类型,则进行相关处理,对要素清单或者要素间关系进行收集(输出)。源码语法树的遍历程序可以支持各种不同插件,通过参数表对插件设置开关,每次遍历通过参数开启特定的插件即可。
参见图7所示的数据结构,本申请的具体应用实例中可以涉及四个表,分别为源程序表、程序要素表、插件定义表和程序扫描插件配置表,其中,可以针对源代码库针对的源程序表生成树形结构的数据库,及语法树,其中的语法树中的每个程序要素均对应一个程序要素表;另外,在接收程序要素提取请求后,可以获取该接收程序要素提取请求对应的插件定义表,而降基于该插件定义表更新或形成程序扫描插件配置表,即前述的配置有所述目标插件的参数表。
基于上述内容,参见图8,本申请应用实例提供的程序要素提取方法的具体实现过程如下:
1.对程序库中的所有程序生成源码语法树,语法树的叶子节点管理到字段级。源码语法树的生成是现有成熟技术,不在这里描述细节。
2.基于树的遍历算法,编写源码语法树的遍历程序,该程序可按顺序遍历树形数据库的每一个节点。
3.根据需求编写针对特定程序要素的插件程序,即对应某种特定类型的程序要素,做特定处理。各种程序要素的插件积累形成插件库。
4.当需要做某种程序要素分析时,配置参数表,即打开相应的插件开关。
5.对程序库中的每一个程序,用遍历程序遍历其源码语法树。在遍历过程中,对每一个节点,根据参数表设置,判断是否需要运行相应插件。
6.插件运行过程对搜索结果以清单的形式输出。
从上述内容可知,本申请应用实例针对金融机构架构转型工程中,大量程序迁移的场景,提供了一种新的程序要素提取及管理方法。相对于原有的基于具体需求单独开发工具程序的做法。本申请应用实例具有以下几个优点:
1、准确:对某种程序要素的搜索整理,严谨准确,不会出现遗漏。
2、可扩展:程序要素种类很多,由于遍历程序对程序的扫描是到字段级,达到了最细的粒度,可以覆盖各种程序要素类型,并支持对新需求扩展程序要素类型,只要重新成熟源码语法树即可。
3、高效:对新的需求,需要涉及新的程序要素,只要微调语法树的生成程序,以及对该程序要素编写新的插件即可,然后在遍历程序中安装插件。
从软件层面来说,为了提高程序要素的提取全面性、准确性及效率,本申请提供一种程序要素提取方法的实施例,本申请提供一种用于执行所述程序要素提取方法中全部或部分内容的程序要素提取装置的实施例,参见图9,所述程序要素提取装置具体包含有如下内容:
程序要素提取模块10,用于根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息。
在程序要素提取模块10中,程序要素提取装置或代码分析工具首先获取当前的目标要素提取信息,该目标要素提取信息是指用于指示当前所需要的程序要素的搜索关键信息,例如,该目标要素提取信息可以为:程序要素类型;而后可以基于该程序要素类型遍历预存储的各个源程序各自对应的语法树,查找属于该程序要素类型的全部的程序要素。其中,搜索语法树的每个节点均用于表示一个程序要素的程序要素信息,这里的程序要素信息是指程序要素的唯一标识以及对应的属性信息,而程序要素类型即为属性信息中的一种。可以理解的是,搜索程序要素的唯一标识可以为程序要素名。
可以理解的是,本申请中提及的程序要素均可以被认定为是用于进行源程序迁移的程序要素,当然,源程序迁移或源代码迁移的用途场景仅为本申请提及的程序要素的其中一个应用场景,为了满足多元化需求,本申请提及的程序要素也可以用于其他应用场景中,例如通过整理某一类型的全部的程序要素来重新编写源代码等,本申请实施例对此不作限制。
在本申请的一个或多个实施例中,所述程序要素包含有:源程序、接口、函数、sql语句、表结构及表字段等。
信息输出模块20,用于输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
在信息输出模块20中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。在一种举例中,若当前的程序要素对应在语法树中的节点为子节点,该子节点的程序要素的属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识,还可以包含有父节点标识等。
本申请提供的程序要素提取装置的实施例具体可以用于执行上述实施例中的程序要素提取方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本申请实施例提供的程序要素提取装置,能够有效提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强,程序要素提取的自动化程度高,进而能够有效提高应用提取的程序要素进行程序要素管理及分析的效率及准确性,以有效提高源程序迁移等场景的实施效率及准确性。
为了解决现有的程序要素提取方式存在的程序要素易遗漏、耗时长及扩展性差等问题,在本申请的程序要素提取装置的一个实施例中,参见图10,所述程序要素提取装置还具体包含有如下内容:
语法树生成模块01,用于应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素。
具体来说,语法树生成程序用于对源码库进行扫描,基于代码语法,生成树形结构的数据库,该数据库的每一个叶子节点都是一个程序要素,比如一个函数,或者一个表。对不同的程序要素,我们标记不同类型,并支持扩展出新的程序要素类型。
程序要素表存储模块02,用于存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
从上述描述可知,本申请实施例提供的程序要素提取装置,通过对语法树生成程序和代码语法,能够生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强。
为了解决现有的程序要素提取方式存在的每次面临新需求时均需要重新编码而造成的程序复用度低的问题,在本申请的程序要素提取装置的一个实施例中,所述程序要素提取装置的程序要素提取模块10具体用于执行下述内容:
步骤110:接收程序要素提取请求,其中,该程序要素提取请求中包含有目标要素提取信息,且该目标要素提取信息中包括程序要素的目标属性信息。
步骤120:基于所述目标属性信息获取对应的目标插件,并将所述目标插件加入预设的语法树遍历程序中以形成对应的目标遍历程序。
步骤130:应用所述目标遍历程序遍历各个所述源程序各自对应的语法树,以查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
从上述描述可知,本申请实施例提供的程序要素提取装置,通过目标插件及语法树遍历程序的应用,无需每次面临新需求时均重新对程序要素提取程序进行编码,能够有效提高程序要素提取程序的复用性,进而能够进一步提高程序要素提取效率,并节省人力成本及时间成本,提高研发人员的用户体验。
为了提高程序要素提取结果的获取便捷性及可靠性,在本申请的程序要素提取装置的一个实施例中,所述程序要素提取装置的信息输出模块20具体用于执行如下内容:
步骤210:生成包含有与所述目标属性信息对应的全部的程序要素的程序要素清单和/或程序要素之间的关系数据,其中,所述程序要素清单用于存储与所述目标属性信息对应的全部的程序要素的标识和对应的属性信息。
为了进一步提高程序复用度,在本申请的程序要素提取装置的一个实施例中,所述程序要素提取装置的程序要素提取模块10还具体用于执行下述内容:
步骤121:根据所述目标属性信息在预存储的插件中查找是否包含有满足所述目标属性信息的提取需求的目标插件,若是,则执行步骤122;
步骤122:在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序;
相对应的,所述步骤130具体包含有如下内容:
步骤131:运行所述目标遍历程序遍历各个所述源程序各自对应的语法树,基于配置有所述目标插件的所述参数表运行所述目标插件查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
从上述描述可知,本申请实施例提供的程序要素提取装置,能够进一步提高程序要素提取程序的复用性,进而能够进一步提高程序要素提取效率。
为了进一步提高程序复用度,在本申请的程序要素提取装置的一个实施例中,所述程序要素提取装置的程序要素提取模块10还具体用于执行下述内容:
若经步骤121判断获知所述目标属性信息在预存储的插件中未包含有满足所述目标属性信息的提取需求的目标插件,则执行步骤123;
步骤123:接收满足所述目标属性信息的提取需求的目标插件。
具体来说,若所述目标属性信息在预存储的插件中未包含有满足所述目标属性信息的提取需求的目标插件,则可以向研发人员持有的客户端设备中发送目标插件设置请求,并接受研发人员持有的客户端设备发送的针对该目标插件设置请求形成的目标插件。
步骤122:在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序。
从硬件层面来说,为了提高程序要素的提取全面性、准确性及效率,本申请提供一种用于实现所述程序要素提取方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图11为本申请实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,程序要素提取功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤100:根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息。
在步骤100中,程序要素提取装置或代码分析工具首先获取当前的目标要素提取信息,该目标要素提取信息是指用于指示当前所需要的程序要素的搜索关键信息,例如,该目标要素提取信息可以为:程序要素类型;而后可以基于该程序要素类型遍历预存储的各个源程序各自对应的语法树,查找属于该程序要素类型的全部的程序要素。其中,搜索语法树的每个节点均用于表示一个程序要素的程序要素信息,这里的程序要素信息是指程序要素的唯一标识以及对应的属性信息,而程序要素类型即为属性信息中的一种。可以理解的是,搜索程序要素的唯一标识可以为程序要素名。
可以理解的是,本申请中提及的程序要素均可以被认定为是用于进行源程序迁移的程序要素,当然,源程序迁移或源代码迁移的用途场景仅为本申请提及的程序要素的其中一个应用场景,为了满足多元化需求,本申请提及的程序要素也可以用于其他应用场景中,例如通过整理某一类型的全部的程序要素来重新编写源代码等,本申请实施例对此不作限制。
在本申请的一个或多个实施例中,所述程序要素包含有:源程序、接口、函数、sql语句、表结构及表字段等。
步骤200:输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
在步骤200中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。在一种举例中,若当前的程序要素对应在语法树中的节点为子节点,该子节点的程序要素的属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识,还可以包含有父节点标识等。
从上述描述可知,本申请实施例提供的电子设备,能够有效提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强,程序要素提取的自动化程度高,进而能够有效提高应用提取的程序要素进行程序要素管理及分析的效率及准确性,以有效提高源程序迁移等场景的实施效率及准确性。
在另一个实施方式中,程序要素提取装置可以与中央处理器9100分开配置,例如可以将程序要素提取装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现程序要素提取功能。
如图11所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的程序要素提取方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的程序要素提取方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息。
在步骤100中,程序要素提取装置或代码分析工具首先获取当前的目标要素提取信息,该目标要素提取信息是指用于指示当前所需要的程序要素的搜索关键信息,例如,该目标要素提取信息可以为:程序要素类型;而后可以基于该程序要素类型遍历预存储的各个源程序各自对应的语法树,查找属于该程序要素类型的全部的程序要素。其中,搜索语法树的每个节点均用于表示一个程序要素的程序要素信息,这里的程序要素信息是指程序要素的唯一标识以及对应的属性信息,而程序要素类型即为属性信息中的一种。可以理解的是,搜索程序要素的唯一标识可以为程序要素名。
可以理解的是,本申请中提及的程序要素均可以被认定为是用于进行源程序迁移的程序要素,当然,源程序迁移或源代码迁移的用途场景仅为本申请提及的程序要素的其中一个应用场景,为了满足多元化需求,本申请提及的程序要素也可以用于其他应用场景中,例如通过整理某一类型的全部的程序要素来重新编写源代码等,本申请实施例对此不作限制。
在本申请的一个或多个实施例中,所述程序要素包含有:源程序、接口、函数、sql语句、表结构及表字段等。
步骤200:输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息。
在步骤200中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。在一种举例中,若当前的程序要素对应在语法树中的节点为子节点,该子节点的程序要素的属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识,还可以包含有父节点标识等。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够有效提高程序要素的提取全面性及准确性,能够有效提高程序要素的提取效率,程序要素的添加及删减的灵活性更高,可扩展性强,程序要素提取的自动化程度高,进而能够有效提高应用提取的程序要素进行程序要素管理及分析的效率及准确性,以有效提高源程序迁移等场景的实施效率及准确性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种程序要素提取方法,其特征在于,包括:
根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;
输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息;
所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素,包括:
接收程序要素提取请求,其中,该程序要素提取请求中包含有目标要素提取信息,且该目标要素提取信息中包括程序要素的目标属性信息;
根据所述目标属性信息在预存储的插件中查找是否包含有满足所述目标属性信息的提取需求的目标插件,若是,则在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入预设的语法树遍历程序中以形成对应的目标遍历程序;
运行所述目标遍历程序遍历各个所述源程序各自对应的语法树,基于配置有所述目标插件的所述参数表运行所述目标插件查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
2.根据权利要求1所述的程序要素提取方法,其特征在于,在所述根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素之前,还包括:
应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素;
存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
3.根据权利要求2所述的程序要素提取方法,其特征在于,所述输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息,包括:
生成包含有与所述目标属性信息对应的全部的程序要素的程序要素清单和/或程序要素之间的关系数据,其中,所述程序要素清单用于存储与所述目标属性信息对应的全部的程序要素的标识和对应的属性信息。
4.根据权利要求1所述的程序要素提取方法,其特征在于,还包括:
若在预存储的插件中未包含有满足所述目标属性信息的提取需求的目标插件,则接收满足所述目标属性信息的提取需求的目标插件;
在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入所述语法树遍历程序中以形成对应的目标遍历程序。
5.一种程序要素提取装置,其特征在于,包括:
程序要素提取模块,用于根据目标要素提取信息遍历预存储的各个源程序各自对应的语法树,查找用于源程序迁移的程序要素;其中,所述语法树的各个节点分别用于表示对应的源程序中各个程序要素,各个所述程序要素分别对应预存储的程序要素信息;
信息输出模块,用于输出所述目标要素提取信息对应的全部的所述程序要素的程序要素信息;
所述程序要素提取模块具体用于执行以下步骤:
接收程序要素提取请求,其中,该程序要素提取请求中包含有目标要素提取信息,且该目标要素提取信息中包括程序要素的目标属性信息;
根据所述目标属性信息在预存储的插件中查找是否包含有满足所述目标属性信息的提取需求的目标插件,若是,则在所述目标属性信息对应的参数表中配置所述目标插件,并将配置有所述目标插件的所述参数表加入预设的语法树遍历程序中以形成对应的目标遍历程序;
运行所述目标遍历程序遍历各个所述源程序各自对应的语法树,基于配置有所述目标插件的所述参数表运行所述目标插件查找到与所述目标属性信息对应的全部的程序要素的程序要素信息和/或程序要素之间的关系数据。
6.根据权利要求5所述的程序要素提取装置,其特征在于,还包括:
语法树生成模块,用于应用预设的语法树生成程序对源码库进行扫描,并基于预设的代码语法生成所述源码库中的各个所述源程序各自对应的可扩展程序要素的语法树,且所述语法树的各个节点分别用于表示对应的源程序中各个程序要素;
程序要素表存储模块,用于存储各个所述程序要素分别对应的用于表示程序要素信息的程序要素表,其中,所述程序要素信息包括程序要素的标识和对应的属性信息;且该属性信息包括程序要素的类型、所属源程序标识和对应在语法树中的节点标识。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的程序要素提取方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述的程序要素提取方法。
CN202011330861.8A 2020-11-24 2020-11-24 程序要素提取方法及装置 Active CN112306499B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011330861.8A CN112306499B (zh) 2020-11-24 2020-11-24 程序要素提取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011330861.8A CN112306499B (zh) 2020-11-24 2020-11-24 程序要素提取方法及装置

Publications (2)

Publication Number Publication Date
CN112306499A CN112306499A (zh) 2021-02-02
CN112306499B true CN112306499B (zh) 2023-10-13

Family

ID=74335690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011330861.8A Active CN112306499B (zh) 2020-11-24 2020-11-24 程序要素提取方法及装置

Country Status (1)

Country Link
CN (1) CN112306499B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134435A (zh) * 2019-05-29 2019-08-16 北京百度网讯科技有限公司 一种代码修复案例获取方法、装置、设备及存储介质
CN111367527A (zh) * 2020-02-18 2020-07-03 北京字节跳动网络技术有限公司 一种语言处理的方法、装置、介质和电子设备
CN111880777A (zh) * 2020-06-23 2020-11-03 北京三快在线科技有限公司 程序信息下发方法、装置、电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134435A (zh) * 2019-05-29 2019-08-16 北京百度网讯科技有限公司 一种代码修复案例获取方法、装置、设备及存储介质
CN111367527A (zh) * 2020-02-18 2020-07-03 北京字节跳动网络技术有限公司 一种语言处理的方法、装置、介质和电子设备
CN111880777A (zh) * 2020-06-23 2020-11-03 北京三快在线科技有限公司 程序信息下发方法、装置、电子设备

Also Published As

Publication number Publication date
CN112306499A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
KR101707369B1 (ko) 이벤트 저장소의 구축 방법 및 장치
CN111124376B (zh) codeCli脚手架搭建项目系统
CN106407360B (zh) 一种数据的处理方法及装置
CN111209344A (zh) 数据同步方法及装置
JP2010250450A (ja) データベース・メッセージ分析支援プログラム、方法及び装置
CN112906206B (zh) 数字孪生模型构建方法和装置
CN112988601A (zh) 测试脚本开发方法及装置
CN113204571A (zh) 涉及写入操作的sql执行方法、装置及存储介质
CN106682210B (zh) 日志文件查询方法及装置
CN112860264B (zh) 一种抽象语法树重构方法及装置
CN105512276A (zh) 一种构建垃圾文件的方法、装置及电子设备
CN110232028A (zh) 一种测试用例自动化运行方法及系统
CN112306499B (zh) 程序要素提取方法及装置
JPWO2010064317A1 (ja) 運用管理支援プログラム、該プログラムを記録した記録媒体、運用管理支援装置、および運用管理支援方法
CN112597034A (zh) 测试用例的生成方法、装置及计算机可读存储介质
CN112785284A (zh) 基于结构化文档的报文入库方法及装置
CN112988600A (zh) 业务场景测试方法、装置、电子设备及存储介质
CN109740074B (zh) 参数配置信息的处理方法、装置及设备
CN114153547B (zh) 管理页面显示方法及装置
US20150178075A1 (en) Enhancing understandability of code using code clones
CN112597179B (zh) 日志信息解析方法及装置
CN111984257B (zh) 一种实体建模定制化扩展方法及装置
CN104216919A (zh) 用于完善电子地图数据的方法及系统
CN112860585A (zh) 一种测试脚本断言生成方法及装置
JP7006769B2 (ja) 検索文活用装置および検索文活用方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant