CN114296709A - 一种代码处理方法、装置、设备及介质 - Google Patents
一种代码处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114296709A CN114296709A CN202111627611.5A CN202111627611A CN114296709A CN 114296709 A CN114296709 A CN 114296709A CN 202111627611 A CN202111627611 A CN 202111627611A CN 114296709 A CN114296709 A CN 114296709A
- Authority
- CN
- China
- Prior art keywords
- node
- root node
- nodes
- level
- code
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本说明书实施例公开了一种代码处理方法、装置、设备及介质,代码处理方法包括:获取目标代码,确定所述目标代码的执行逻辑线;对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点;其中,所述根节点或所述根节点下属的各级节点用于表征所述目标代码中所使用的函数;按照操作数据展示所述根节点或根节点下属的节点。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种代码处理方法、装置、设备及介质。
背景技术
现有技术中,在获取代码后,如何从代码中获取有效信息和重点信息,是一个重要课题。
有鉴于此,需要更有效和更高效的代码处理方案。
发明内容
本说明书实施例提供一种代码处理方法、装置、设备及介质,用以解决如何更有效和更高效地进行代码处理的技术问题。
为解决上述技术问题,本说明书实施例提供如下技术方案:
本说明书实施例提供一种代码处理方法,包括:
获取目标代码,确定所述目标代码的执行逻辑线;
对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点;其中,所述根节点或所述根节点下属的各级节点用于表征所述目标代码中所使用的函数;
按照操作数据展示所述根节点或根节点下属的节点。
可选的,对任一执行逻辑线,该执行逻辑线的根节点作为该执行逻辑线的第一级节点;
从该执行逻辑线的第二级节点开始,该执行逻辑线的任一级节点所表征的函数,为该级节点的上一级节点所表征的函数的嵌套函数。
可选的,按照操作数据展示所述根节点或根节点下属的节点包括:
若获取到对任一根节点的展示指令,则展示该根节点;
若获取到对该根节点下属的任一级节点的展示指令,则展示该根节点下属的该级节点。
可选的,所述方法还包括:若获取到对任一节点的选择指令,则展示该节点所表征的函数;
或,
所述方法还包括:若获取到任一节点的编辑指令,展示该节点的编辑页面,以便对该节点所表征的函数进行编辑;
或,
所述方法还包括:若获取对任一节点的注释指令,展示该节点的注释页面,以便对该节点对应的函数进行注释;
或,所述方法还包括:若获取到对函数的搜索指令,则展示被搜索函数对应的节点。
可选的,所述方法还包括:设置对各级节点进行操作的权限。
可选的,所述方法还包括:
若确定有一个或多个节点被选择,并获取到对被选择节点的组合指令,则基于所述被选择节点所表征的函数形成代码。
可选的,所述方法还包括:
对基于所述被选择节点所表征的函数形成代码进行测试;
或,对各类基于所述被选择节点所表征的函数形成的代码进行投票,各类基于所述被选择节点所表征的函数形成的代码确定最优代码。
本说明书实施例提供一种代码处理装置,包括:
提取模块,用于获取目标代码,确定所述目标代码的执行逻辑线;
表征模块,用于对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点;其中,所述根节点或所述根节点下属的各级节点用于表征所述目标代码中所使用的函数;
展示模块,用于按照操作数据展示所述根节点或根节点下属的节点。
本说明书实施例提供一种代码处理设备,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行上述的代码处理方法。
本说明书实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述的代码处理方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
上述技术方案确定代码的执行逻辑线,进而通过节点表征各执行逻辑线下各函数的关系,并展示各节点,从而能够有效提取代码中的有效信息和重点信息,提高代码有效信息和重点信息的确定效果和效率,提高代码处理效果和效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对本说明书实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面介绍的附图仅仅是本说明书中记载的实施例可能涉及的部分附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书第一个实施例中的代码处理方法的执行主体示意图。
图2是本说明书第一个实施例中的代码处理方法的流程示意图。
图3是本说明书第一个实施例中的程序执行示意图。
图4是本说明书第一个实施例中的一种节点展示示意图。
图5是本说明书第一个实施例中的另一种节点展示示意图。
图6是本说明书第一个实施例中的另一种节点展示示意图。
图7是本说明书第二个实施例中的代码处理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例的附图,对本说明书实施例的技术方案清楚、完整地进行描述。显然,本说明书所描述的实施例仅仅是本申请的部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
现有技术中,在获取代码后,如何从代码中获取有效信息和重点信息,是一个重要课题。
本说明书第一个实施例(以下简称“实施例一”)提供了一种代码处理方法,实施例一的执行主体可以是终端(包括但不限于手机、计算机、pad、电视)或者服务器或者操作系统或者应用程序或者代码处理平台或者代码处理系统等,即执行主体可以是多种多样的,可以根据需要设置、使用或者变换执行主体。另外,也可以有第三方应用程序协助所述执行主体执行实施例一。例如图1所示,可以由服务器来执行实施例一中的代码处理方法,并且可以在(用户所持有的)终端上安装(与所述服务器)相对应的应用程序,终端或应用程序与服务器之间可以进行数据传输,通过终端或应用程序来进行数据的采集或输入或输出或(向用户)进行页面或信息处理,从而辅助服务器执行实施例一中的代码处理方法。
如图2所示,实施例一提供的代码处理方法包括:
S101:(执行主体)获取目标代码,确定所述目标代码的执行逻辑线;
实施例一的执行主体可以获取源代码,例如获取网络公开的源代码(开源代码),将获取的源代码作为目标代码。
程序的执行过程形成一个以栈结构为基础,栈帧承载函数的先进后出的一个结构数据。一个程序的入口类,类中定义了相关的函数(就是想让代码执行的操作)。一个请求过来,落实到代码中,就是创建一个栈,方法抽象出来形成一个栈帧,当涉及调用其他类的的函数,则直接将函数抽象出来的栈帧压入栈顶。当栈中的栈帧执行完毕弹出,最后到请求出口。例如图3所示。
程序的运行伴随着入栈弹栈的操作。对于每一个类,每一个类中包含方法函数(以下简称“函数”),每个函数涉及执行逻辑,执行逻辑中可以再次嵌套函数。同时类有多态的区分,故代码的整个处理逻辑会形成一个结构为树形的发散状态,这也说明代码的整个处理逻辑是由主线和支线组成的。其中,主线可以称为执行逻辑线,单个执行逻辑线可以代表目标代码对单个事件的处理流程。
由上可知,获取目标代码后,实施例一的执行主体就可以确定目标代码的执行逻辑线。
S103:(执行主体)对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点;其中,所述根节点或所述根节点下属的各级节点用于表征所述目标代码中所使用的函数;
当然,实施例一的执行主体可以确定目标代码的一条或多条执行逻辑线。
对(目标代码的)任一执行逻辑线,实施例一的执行主体可以确定该执行逻辑线的根节点以及根节点下属的各级节点。其中,根节点或根节点下属的各级节点用于表征目标代码中所使用的函数。具体的,根节点(可以作为第一级节点)或根节点下属的各级节点用于表征该执行逻辑线中所使用的函数。对任一节点,该节点为其所表征的函数对应的节点。例如可以通过关键字词确定目标代码中所使用的函数,进而通过各级节点表征目标代码中所使用的函数。
实施例一中,对任一执行逻辑线,该执行逻辑线的根节点表征该执行逻辑线所使用的最上级函数,根节点可以作为第一级节点;第一级节点下属的第二级节点(即该执行逻辑线的第二级节点)所表征的函数,为第一级节点所表征的函数的下一级嵌套函数;第二级节点下属的第三级节点(即该执行逻辑线的第三级节点)所表征的函数,为第二级节点所表征的函数的下一级嵌套函数;以此类推。也就是说,从该执行逻辑线的第二级节点开始,该执行逻辑线的任一级节点所表征的函数,为该级节点的上一级节点所表征的函数的(下一级)嵌套函数。其中,该执行逻辑线的第二级节点以及第二级节点以下的各级节点,就是该执行逻辑线的根节点下属的各级节点。
S105:(执行主体)按照操作数据展示所述根节点或根节点下属的节点;
实施例一的执行主体可以获取(用户的)操作数据,根据操作数据展示(任一执行逻辑线的)根节点或根节点下属的(各级)节点。
其中,根据操作数据展示(任一执行逻辑线的)根节点或根节点下属的(各级)节点可以包括:若获取到对任一根节点的展示指令,则展示该根节点;若获取到对该根节点下属的任一级节点(即根节点的下属节点)的展示指令,则展示该根节点下属的该级节点。
例如,对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点后,实施例一的执行主体可以提供节点展示选项,用户可以通过节点展示选项选择展示哪个(执行逻辑线的)根节点或根节点的下属节点。若用户选择了某个根节点,则实施例一的执行主体获取到对该根节点的展示指令,并展示该根节点;若用户选择了某个根节点下属的某一级节点,则实施例一的执行主体获取到对该根节点下属的该级节点的展示指令,并展示该级节点(一般的,实施例一的执行主体会将该级节点的各上级节点一并展示,即从该根节点一直展示到该级节点)。
对任一执行逻辑线,展示该执行逻辑的一级节点或多级节点时,对于相邻的两级节点,若下一级的某个节点所表征的函数,为上一级的某个节点所表征的函数的下一级嵌套函数,则该两个节点通过连线连接。例如第n+1(n≥1)级的某个节点B所表征的函数,为第n级的某个节点A表征的函数的下一级嵌套函数,则节点A和节点B之间通过连线连接。若第n+1(n≥1)级的多个节点各自所表征的函数,均为第n级的某个节点所表征的函数的下一级嵌套函数,则第n级的该节点与第n+1级的这多个节点分别通过连线连接。如此一来,实施例一的执行主体可以通过树形结构展示执行逻辑的各级节点。例如图4所示,图4中目标代码记为实例。
实施例一中,若实施例一的执行主体获取到对任一节点的选择指令,可以展示该节点所表征的函数(相当于查看详情,该节点所表征的函数相当于对该节点的描述)。例如,展示任一节点后,用户可以通过鼠标点击或键盘键或触屏操作选择该节点,从而实施例一的执行主体获取到对该节点的选择指令,并展示该节点所表征的函数。具体的,可以通过前端技术将框架代码渲染出来,形成一个通过选择事件,获取具体函数的步骤,从而用户选择节点后,展示被选择节点所表征的函数。另外,当用户选择节点后,实施例一的执行主体可以展示被选择节点的下级节点,以进行节点的扩散展示。
实施例一中,若实施例一的执行主体获取到对函数的搜索指令,可以展示被搜索函数对应的节点。例如,实施例一的执行主体可以提供搜索选项,用户可以通过搜索选项选择需要搜索的函数,从而实施例一的执行主体获取到对需要搜索的函数的搜索指令,并展示被搜索函数对应的节点。其中,若某个节点用于表征所述需要搜索的函数,则实施例一的执行主体可以展示该节点所在的执行逻辑线的各级节点,包括但不限于通过树形结构或列表展示该节点所在的执行逻辑线的各级节点。
一个具体示例可以是:
com.raydata.service.project.ProjectService#moveProject,这个是某执行逻辑线从根节点到某级节点的全路径(例如树形结构的路径,下同)。当用户搜索moveProject时(即使是模糊搜索),则将上述全路径搜索出来,以列表或树形结构展示(对应“展示该节点所在的执行逻辑线的各级节点”)。然后点击该全路径的各节点,可以展示被选择节点所表征的函数,从而得到链分布为
com.raydata.controller.project.ProjectController#moveProject→com.raydata.service.project.ProjectService#moveProject→com.baomidou.mybatisplus.core.mapper.BaseMapper#update,这就代表了这个栈帧的执行流程:控制器ProjectController#moveProject中调用了业务处理层ProjectService#moveProject,执行完业务操作后更改了相关数据库BaseMapper#update,对数据库进行更新。当我点击ProjectService#moveProject或其对应的节点时,弹出详情,即描述信息,描述信息为(业务数据更新,通过校验数据录入的参数,然后累加相关部分数据处理,最后将数据处理的结果进行入库)。
实施例一中,实施例一的执行主体若获取到对任一节点的编辑指令,可以展示该节点的编辑页面,以便(用户)对该节点所表征的函数进行编辑。例如,实施例一的执行主体可以提供编辑选项,用户可以通过编辑选项选择要编辑的节点,从而实施例一的执行主体获取到对要编辑的节点的编辑指令,展示要编辑的节点的编辑页面。或,实施例一中,实施例一的执行主体若获取到对任一节点的注释指令,可以展示该节点的注释页面,以便(用户)对该节点所表征的函数进行注释。例如,实施例一的执行主体可以提供注释选项,用户可以通过注释选项选择要注释的节点,从而实施例一的执行主体获取到对要注释的节点的注释指令,展示要注释的节点的注释页面。对任一节点,用户对该节点所表征的函数进行注释后,若用户选择该节点,则实施例一的执行主体可以展示该节点所表征的函数以及对该节点所表征的函数的注释。
实施例一中,若实施例一的执行主体确定有一个或多个节点被(用户)选择,并获取到对被选择节点的组合指令,则实施例一的执行主体基于被选择节点所表征的函数形成代码。例如,实施例一的执行主体可以提供组合选项,用户在选择节点后可以通过组合选项对被选择节点进行组合,从而实施例一的执行主体获取到对被选择节点的组合指令,基于被选择节点所表征的函数形成代码,包括但不限于将被选择节点所表征的函数拼接成代码。若被选择节点具有级别顺序,例如被选择节点包括较上级的节点和较下级的节点,则可以按照节点级别越高,节点所表征的函数越靠前的规则,将被选择节点所表征的函数拼接成代码。
实施例一中,可以通过实施例一的执行主体对基于所述被选择节点所表征的函数形成代码进行测试,确定代码的可用性;或者,对各类基于所述被选择节点所表征的函数形成的代码进行投票,各类基于所述被选择节点所表征的函数形成的代码确定最优代码。
用户也可以通过实施例一的执行主体提供的删除选项对节点进行删除操作,通过实施例一的执行主体提供的新增选项新增节点,或通过实施例一的执行主体提供的添加连线选项,在任两个节点之间添加连线。
用户也可以通过实施例一的执行主体将各级节点保存和导出,并可以通过渲染方式导出为节点的路径图或导向图(例如树形结构图)。
用户还可以通过实施例一的执行主体进行其他操作,实施例一不作限定。
实施例一的执行主体可以将各级节点对应的数据分享到其他设备,以便其他设备对节点执行展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出中的一项或多项。
用户可以通过实施例一的执行主体执行对节点的展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出中的一项或多项,也可以通过其他设备向实施例一的执行主体发出展示指令、选择指令、搜索指令、编辑指令、注释指令、组合指令、删除指令或新增指令、添加连线指令、分享指令或保存指令、导出指令中的一项或多项,以使实施例一的执行主体对节点执行对应的展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出操作中的一项或多项。
实施例一中,对节点的展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出中的一项或多项可以是在展示节点之后进行,即在展示节点之后,允许用户对节点进行展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出中的一项或多项。例如在展示节点之后,提供搜索选项、编辑选项、注释选项、组合选项、删除选项或添加连线选项或允许用户选择节点(以及对节点进行组合)。
用户可以通过实施例一的执行主体设置对各级节点或函数进行操作的权限,例如展示权限、选择权、搜索权限、编辑权限、注释权限、组合权限、删除或新增权限、添加连线权限、分享权限或保存权限、导出权限中的一项或多项,具有相应权限的用户能够执行相应的展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出操作中的一项或多项。
实施例一的一个具体实施例可以是:以spring为例,可以获取spring各个版本的源代码,比如spring的5.1.x版本的代码,作为目标代码。实施例一的中主体确定各执行逻辑线从根节点到下属各级节点的全路径,比如org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization;
包:org.springframework.beans.factory.config;
类名:BeanPostProcessor;
方法节点名:postProcessBeforeInitialization;
当搜索BeanPostProcessor时,将版本内类名为BeanPostProcessor的全路径给展示出来,然后可以点击选择加进系统类表中;或者,对全路径的各节点进行展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出中的一项或多项。例如图5或图6所示,其中图5和图6中的栈帧节点代表执行逻辑线的节点,org.……Initialization也代表执行逻辑线的节点,“这是……一些处理”代表注释。图6可以表示节点的搜索和扩散,其中扩散可以是从三个节点扩散到四个节点,并可以在节点之间(手动)添加连线,例如通过箭头在节点间建立联系。
另一个具体示例可以是:对于spring初始化流程:org.springframework.context.support.AbstractApplicationContext#refresh,这里是一个业务函数,里面涉及到11个栈帧的执行,每个栈帧代表了处理相关业务的方法,也就是其包含多个子流程(子流程相当于执行逻辑线)。通过对根节点到从属的各级节点进行展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出中的一项或多项,例如通过图和箭头表示来描绘出每个节点的每一个栈帧所要处理的内容是什么,从而显示出spring的初始流程,便于了解spring初始化流程所涉及的函数或步骤等信息(根节点到从属的各级节点的路径相当于代码函数的执行步骤)。
另外,可以通过鼠标或键盘或触控新加节点,通过搜索添加目标代码中需要研究的流程的入口类,然后弹出对应的源代码原文的描述和相关附加信息(全局变量,静态变量)以及类的描述方法等等,根据程序的测试流程,管理涉及到的流程节点(即各级节点)。
另外,选择需要查看的节点,展示出被选择节点的信息(即节点所表征的函数),以及被选择节点所在的全路径,提高查看路径的灵活性,防止其他路径的干扰。
实施例一中,确定代码的执行逻辑线,进而通过节点表征各执行逻辑线下各函数的关系,能够有效提取代码中的有效信息和重点信息(有效信息和重点信息包括但不限于各节点所表征的代码),提高代码有效信息和重点信息的确定效果和效率,并能够对代码有效信息和重点信息进行执行流程展示(节点级别顺序代表函数嵌套顺序,也代表函数执行顺序,从而节点全路径的展示相当于展示代码有效信息和重点信息的执行流程),从而提高代码处理效果和效率。
实施例一中,允许用户对节点进行多种操作,例如展示、选择、搜索、编辑、注释、组合、删除或新增、添加连线、分享或保存、导出操作中的一项或多项,从而提高代码处理的功能多样性和灵活性。
实施例一中,可以基于被选择节点所表征的函数形成代码,降低代码编写难度,提高代码编写效率。
实施例一中,对基于所述被选择节点所表征的函数形成代码进行测试或投票,提高了所形成代码的可用性。
如图7所示,本说明书第二个实施例提供一种与实施例一所述代码处理方法对应的代码处理装置,包括:
提取模块202,用于获取目标代码,确定所述目标代码的执行逻辑线;
表征模块204,用于对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点;其中,所述根节点或所述根节点下属的各级节点用于表征所述目标代码中所使用的函数;
展示模块206,用于按照操作数据展示所述根节点或根节点下属的节点。
可选的,对任一执行逻辑线,该执行逻辑线的根节点作为该执行逻辑线的第一级节点;
从该执行逻辑线的第二级节点开始,该执行逻辑线的任一级节点所表征的函数,为该级节点的上一级节点所表征的函数的嵌套函数。
可选的,按照操作数据展示所述根节点或根节点下属的节点包括:
若获取到对任一根节点的展示指令,则展示该根节点;
若获取到对该根节点下属的任一级节点的展示指令,则展示该根节点下属的该级节点。
可选的,所述展示模块206,用于若获取到对任一节点的选择指令,则展示该节点所表征的函数;
或,所述装置还包括:编辑模块,用于若获取到任一节点的编辑指令,展示该节点的编辑页面,以便对该节点所表征的函数进行编辑;
或,所述装置还包括:注释模块,用于若获取对任一节点的注释指令,展示该节点的注释页面,以便对该节点对应的函数进行注释;
或,所述装置还包括:搜索模块,用于若获取到对函数的搜索指令,则展示被搜索函数对应的节点。
可选的,所述装置还包括:权限模块,用于设置对各级节点进行操作的权限。
可选的,所述装置还包括:组合模块,用于若确定有一个或多个节点被选择,并获取到对被选择节点的组合指令,则基于所述被选择节点所表征的函数形成代码。
可选的,所述装置还包括:评价模块,用于对基于所述被选择节点所表征的函数形成代码进行测试;
或,对各类基于所述被选择节点所表征的函数形成的代码进行投票,各类基于所述被选择节点所表征的函数形成的代码确定最优代码。
本说明书第三个实施例提供一种代码处理设备,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行实施例一所述的代码处理方法。
本说明书第四个实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现实施例一所述的代码处理方法。
上述各实施例可以结合使用,不同实施例之间或同一实施例内的名称相同的模块可以是相同或不同的模块。
上述对本说明书特定实施例进行了描述,其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,附图中描绘的过程不一定必须按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例提供的装置、设备、非易失性计算机可读存储介质与方法是对应的,因此,装置、设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备、非易失性计算机存储介质的有益技术效果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种代码处理方法,包括:
获取目标代码,确定所述目标代码的执行逻辑线;
对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点;其中,所述根节点或所述根节点下属的各级节点用于表征所述目标代码中所使用的函数;
按照操作数据展示所述根节点或根节点下属的节点。
2.如权利要求1所述的方法,对任一执行逻辑线,该执行逻辑线的根节点作为该执行逻辑线的第一级节点;
从该执行逻辑线的第二级节点开始,该执行逻辑线的任一级节点所表征的函数,为该级节点的上一级节点所表征的函数的嵌套函数。
3.如权利要求1所述的方法,按照操作数据展示所述根节点或根节点下属的节点包括:
若获取到对任一根节点的展示指令,则展示该根节点;
若获取到对该根节点下属的任一级节点的展示指令,则展示该根节点下属的该级节点。
4.如权利要求1所述的方法,所述方法还包括:若获取到对任一节点的选择指令,则展示该节点所表征的函数;
或,
所述方法还包括:若获取到任一节点的编辑指令,展示该节点的编辑页面,以便对该节点所表征的函数进行编辑;
或,
所述方法还包括:若获取对任一节点的注释指令,展示该节点的注释页面,以便对该节点对应的函数进行注释;
或,
所述方法还包括:若获取到对函数的搜索指令,则展示被搜索函数对应的节点。
5.如权利要求1所述的方法,所述方法还包括:设置对各级节点进行操作的权限。
6.如权利要求1所述的方法,所述方法还包括:
若确定有一个或多个节点被选择,并获取到对被选择节点的组合指令,则基于所述被选择节点所表征的函数形成代码。
7.如权利要求6所述的方法,所述方法还包括:
对基于所述被选择节点所表征的函数形成代码进行测试;
或,对各类基于所述被选择节点所表征的函数形成的代码进行投票,各类基于所述被选择节点所表征的函数形成的代码确定最优代码。
8.一种代码处理装置,包括:
提取模块,用于获取目标代码,确定所述目标代码的执行逻辑线;
表征模块,用于对任一执行逻辑线,确定该执行逻辑线的根节点以及所述根节点下属的各级节点;其中,所述根节点或所述根节点下属的各级节点用于表征所述目标代码中所使用的函数;
展示模块,用于按照操作数据展示所述根节点或根节点下属的节点。
9.一种代码处理设备,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行权利要求1至7中任一项所述的代码处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现权利要求1至7中任一项所述的代码处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627611.5A CN114296709A (zh) | 2021-12-28 | 2021-12-28 | 一种代码处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627611.5A CN114296709A (zh) | 2021-12-28 | 2021-12-28 | 一种代码处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114296709A true CN114296709A (zh) | 2022-04-08 |
Family
ID=80972018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111627611.5A Pending CN114296709A (zh) | 2021-12-28 | 2021-12-28 | 一种代码处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296709A (zh) |
-
2021
- 2021-12-28 CN CN202111627611.5A patent/CN114296709A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562777B (zh) | 数据处理方法及其设备 | |
US20120110444A1 (en) | Help Document Animated Visualization | |
CN110245279B (zh) | 依赖树生成方法、装置、设备及存储介质 | |
CN107622080B (zh) | 一种数据处理方法及设备 | |
CN109241026B (zh) | 数据管理的方法、装置及系统 | |
US9785416B2 (en) | Presenting a custom view in an integrated development environment based on a variable selection | |
JP4001286B2 (ja) | プログラム保守支援装置、プログラム保守支援方法、およびプログラム | |
CN111966334B (zh) | 一种业务处理方法、装置及设备 | |
JP5362736B2 (ja) | 論理構造デザイン・サーフェス | |
CN108255471B (zh) | 一种基于配置套件的系统配置项配置装置、方法及设备 | |
CN114185874A (zh) | 一种基于大数据的建模方法、装置、开发框架及设备 | |
CN113360385A (zh) | 一种测试方法、装置、设备及介质 | |
CN115756449B (zh) | 一种页面复用方法、装置、存储介质及电子设备 | |
CN111538667A (zh) | 一种页面测试的方法及装置 | |
US10635458B2 (en) | Systems and methods for generating a self-updating maintenance page | |
CN115934161A (zh) | 一种代码变更的影响分析方法、装置以及设备 | |
CN114296709A (zh) | 一种代码处理方法、装置、设备及介质 | |
CN115390852A (zh) | 一种生成统一抽象语法树与程序分析的方法和装置 | |
CN114840426A (zh) | 一种代码测试的方法及装置 | |
CN112000329A (zh) | 一种数据展示方法、装置、设备及介质 | |
CN111736820A (zh) | 一种可视化程序开发方法及装置 | |
CN110704742A (zh) | 一种特征提取方法及装置 | |
CN114546554B (zh) | 一种控件的展示方法、装置以及设备 | |
CN116644090B (zh) | 一种数据查询方法、装置、设备及介质 | |
CN113821437A (zh) | 一种页面测试方法、装置、设备及介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220712 Address after: 100190 Beijing Haidian District Zhichun Road 49 No. 3 West 309 Applicant after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 100102 Room 203, 14 and 19, floor 2, building 19, Wangjing Dongyuan seventh district, Chaoyang District, Beijing Applicant before: Beijing Guangqiyuan Digital Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right |