CN114281317A - 代码可视化方法及系统、电子设备、存储介质 - Google Patents

代码可视化方法及系统、电子设备、存储介质 Download PDF

Info

Publication number
CN114281317A
CN114281317A CN202111436903.0A CN202111436903A CN114281317A CN 114281317 A CN114281317 A CN 114281317A CN 202111436903 A CN202111436903 A CN 202111436903A CN 114281317 A CN114281317 A CN 114281317A
Authority
CN
China
Prior art keywords
code
compiling
blocks
source code
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.)
Pending
Application number
CN202111436903.0A
Other languages
English (en)
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.)
Dazhu Hangzhou Technology Co ltd
Original Assignee
Dazhu Hangzhou Technology Co ltd
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 Dazhu Hangzhou Technology Co ltd filed Critical Dazhu Hangzhou Technology Co ltd
Priority to CN202111436903.0A priority Critical patent/CN114281317A/zh
Publication of CN114281317A publication Critical patent/CN114281317A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种代码可视化方法及系统、电子设备、存储介质,该方法包括:获取源代码编译框内的源代码;根据所述源代码的功能类型将所述源代码划分为多个代码块;通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系;生成包括所述多个代码块之间关联关系的第一代码结构图。本发明提供的方案,通过代码结构图展现了代码编译框内的源代码的宏观结构,提高了源代码的生成、输出等处理的效率。

Description

代码可视化方法及系统、电子设备、存储介质
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种代码可视化方法及系统、电子设备、存储介质。
背景技术
目前,代码版本迭代是很常见的,比如新接手的员工需要在理解原代码的基础上进行优化与维护,或者由于编程语言/工具包升级/更优算法等原因需要进行的小范围/大范围代码修改等;然而,当前存在的一些代码修改辅助工具功能有限,无法从宏观结构的角度展现代码结构,且在发生代码修改时,不支持即时同步,进而影响到使用者对代码的理解效率等问题。
发明内容
鉴于上述问题,本发明提出了一种代码可视化方法及系统、电子设备、存储介质,以至少解决现有的代码编译工具因无法展现源代码的宏观结构,造成源代码生成和输出效率低等技术问题。
根据本发明的第一方面,提供了一种代码可视化方法,该方法包括:获取源代码编译框内的源代码;根据所述源代码的功能类型将所述源代码划分为多个代码块;通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系;生成包括所述多个代码块之间的关联关系的第一代码结构图。
可选的,所述方法还包括:接收用户的编译指令;其中,所述编译指令携带有所述用户请求编译所述多个代码块中的目标代码块对应的唯一标识码;根据所述编译指令和所述唯一标识码对所述目标代码块中的代码文本内容进行编译;将编译后的代码文本内容导入所述源代码编译框,以更新所述源代码。
可选的,根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行编译包括以下至少之一:根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行拖拽操作;根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行展开操作,以展开所述目标代码块中的代码内容;根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块中的代码内容进行修改。
可选的,在根据所述源代码的功能类型将所述源代码划分为多个代码块之后,所述方法还包括:根据所述源代码的功能类型生成包括所述多个代码块的第二代码结构图。
可选的,所述根据所述源代码的功能类型将所述源代码划分为多个代码块包括:分析所述源代码对应的功能类型;基于所述功能类型对所述源代码进行模块化拆分,得到所述多个代码块。
可选的,所述通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系包括:分析各个代码块对应功能类型的执行逻辑;依据所述执行逻辑确定任意两个代码块之间的逻辑关系;通过关系定义的方式和所述逻辑关系对各个代码块之间建立逻辑连接,以关联所述多个代码块,得到所述多个代码块之间的关联关系。
根据本发明的第二方面,还提供了一种代码可视化系统,所述代码可视化系统包括读码组件、模块化分析组件、联合分析组件及结构图绘图组件,其中,所述读码组件,用于获取源代码编译框内的源代码;所述模块化分析组件,用于根据所述源代码的功能类型将所述源代码划分为多个代码块;所述联合分析组件,用于通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系;所述结构图绘图组件,用于生成包括所述多个代码块之间的关联关系的第一代码结构图。
可选的,所述代码可视化系统还包括编译组件及代码同步组件,其中,所述编译组件,用于接收用户的编译指令;其中,所述编译指令携带有所述用户请求编译所述多个代码块中的目标代码块对应的唯一标识码;根据所述编译指令和所述唯一标识码对所述目标代码块中的代码文本内容进行编译;所述代码同步器,用于将编译后的代码文本内容导入所述源代码编译框,以更新所述源代码。
可选的,所述编译组件用于执行以下至少之一:根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行拖拽操作;根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行展开操作,以展开所述目标代码块中的代码内容;根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块中的代码内容进行修改。
可选的,所述结构图绘图组件,还用于在所述模块化分析组件根据所述源代码的功能类型将所述源代码划分为多个代码块之后,根据所述源代码的功能类型生成包括所述多个代码块的第二代码结构图。
可选的,所述模块化分析组件,具体用于分析所述源代码对应的功能类型;基于所述功能类型对所述源代码进行模块化拆分,得到所述多个代码块。
可选的,所述联合分析组件,具体用于分析各个代码块对应功能类型的执行逻辑;依据所述执行逻辑确定任意两个代码块之间的逻辑关系;通过关系定义的方式和所述逻辑关系对各个代码块之间建立逻辑连接,以关联所述多个代码块,得到所述多个代码块之间的关联关系。
根据本发明的第三方面,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
根据本发明的第四方面,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
通过本发明提供的代码可视化方法,通过分析源代码编译框内的源代码的功能类型,对源代码进行模块化拆分,得到多个代码块;然后分析各个代码块对应的执行逻辑,生成包括多个代码块之间关联关系的代码结构图,从而实现了通过代码结构图展现了代码编译框内的源代码的宏观结构,解决了现有的代码编译工具因无法展现源代码的宏观结构,造成源代码生成和输出效率低等技术问题,进而提高了源代码的生成、输出等处理的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明实施例提供的一种代码可视化方法的流程图;
图2是根据本发明实施例提供的一种代码可视化系统的结构框图;
图3是根据本发明一具体实施例提供的代码可视化的流程图;
图4是根据本发明一具体实施例提供的源代码的代码块展示示意图;
图5是根据本发明一具体实施例提供的图4中代码块对应的2D结构图;
图6是根据本发明另一具体实施例提供的源代码对应的3D结构图;
图7是根据本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。
为了解决相关技术存在的技术问题,在本实施例中提供了一种代码可视化方法。下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
本发明实施例提供的代码可视化方法,可以应用在服务器、个人电脑、智能手机等电子设备。在本发明实施例的一个应用场景中,以代码编译工具为例,比如VS Code(全称为Visual Studio Code,一种源代码编辑器)、PyCharm(是一种Python IDE(IntegratedDevelopment Environment,即集成开发环境))等编译器,VS Code推出的可视化debug(计算机排除故障)模块可用于提升debug效率;可将本发明实施例提供的代码可视化方法应用在VS Code、PyCharm等编译器上,能够很好地从宏观结构的角度展现代码结构,使得代码编译工具支持即时编辑,让源代码执行过程中的传参、函数调用、数据流向能以直观、用户友好的模式展现。
图1是根据本发明实施例提供的一种代码可视化方法的流程图,如图1所示,该代码可视化方法可以包括如下步骤:
步骤S102,获取源代码编译框内的源代码;
步骤S104,根据源代码的功能类型将源代码划分为多个代码块;
步骤S106,通过分析各个代码块对应功能类型的执行逻辑确定多个代码块之间的关联关系;
步骤S108,生成包括多个代码块之间的关联关系的第一代码结构图。
本发明实施例提供的代码可视化方法,通过分析源代码编译框内的源代码的功能类型,对源代码进行模块化拆分,得到多个代码块;然后分析各个代码块对应的执行逻辑,生成包括多个代码块之间关联关系的代码结构图,从而实现了通过代码结构图展现了代码编译框内的源代码的宏观结构,解决了现有的代码编译工具因无法展现源代码的宏观结构,造成源代码生成和输出效率低等技术问题,进而提高了源代码的生成、输出等处理的效率。
本发明实施例中提供了一种可能的实现方式,以python插件的形式嵌入编译环境,可对编译框内的源代码进行分析与图产出,具体地包括:通过采用由python代码构成的读取器,读取源代码编译框内的源代码;然后利用由一个或多个python代码构成的模块化分析器,分析源代码的功能类型,将源代码划分为多个代码块,一个功能类型对应一个代码块;接着,由多个python代码构成的联合分析器分析各个代码块对应的执行逻辑,以确定多个代码块之间的关联关系;进一步地,利用由python代码构成的结构图化器基于关联关系生成源代码对应的代码结构图。本实施例支持对结构图进行操作,能够对代码块进行编辑,并将编辑内容同步回文本层(即源代码编译框),从而将修改后的代码文本内容同步至原始文件,采用结构图的展示方式,提升使用者对代码的理解效率、通过同步编辑提升代码修改与debug效率。
本发明实施例还可以基于其它语言的开发,如go语言、C语言、java、C++等,在此不做限定。
本发明实施例中提供了一种可能的实现方式,在上述步骤S108之后,还包括:接收用户的编译指令;其中,编译指令携带有用户请求编译多个代码块中的目标代码块对应的唯一标识码;根据编译指令和唯一标识码对目标代码块中的代码文本内容进行编译;将编译后的代码文本内容导入源代码编译框,以更新源代码。
在一个示例中,以python插件的形式嵌入编译环境为例,在接收到开发者的编译指令后,基于编译指令中携带的唯一标识码确定待编译的代码块,然后利用由python代码构成的编译器,对结构图中的指定代码块进行代码文本编译;然后由一个或多个python代码构成的代码同步器,将对结构图的编译结果同步至源代码编译框,以更新源代码,从而实现了将编译后的代码内容导入到原始文件中。
进一步地,根据编译指令和唯一标识码对代码结构图中的目标代码块进行编译包括以下至少之一:根据编译指令和唯一标识码对代码结构图中的目标代码块进行拖拽操作;根据编译指令和唯一标识码对代码结构图中的目标代码块进行展开操作,以展开目标代码块中的代码内容;根据编译指令和唯一标识码对代码结构图中的目标代码块中的代码内容进行修改。
在本实施例中,在以结构图的形式将源代码的结构图展现之后,在显示界面中,基于编译指令,对指定代码块进行拖拽操作、代码内容展开、对代码内容进行编辑等操作,进而能够从宏观的角度展示源代码结构;可选的,本实施例能够以2维或3维形式展示源代码对应的图结构,能够从不同视角查看代码结构。
本发明实施例中提供了一种可能的实现方式,上述步骤S104之后,还包括:根据源代码的功能类型生成包括多个代码块的第二代码结构图。通过本实施例,可对不同功能类型的代码块进行标记,例如,利用不同的颜色标记不同功能类型的代码块,然后生成包括多个颜色标记后的代码块的图结构,从而实现用不同颜色分块展示源代码。
本发明实施例中提供了一种可能的实现方式,上述步骤S104具体包括:分析源代码对应的功能类型;基于功能类型对源代码进行模块化拆分,得到多个代码块。在本实施例中,通过对读取的所有源代码进行文本分析,并进行模块化拆分,得到多个代码块。优选地,经过模块化分析的代码块都有自己的唯一标识码、属性信息及代码内容。例如,以识别逻辑举例:检测到import A…,则判断它为包类代码块,编号为code_01(代码_01);检测到def B(a,b,c)…,则判断它为函数类代码块,序号编号为code_02…。
本发明实施例中提供了一种可能的实现方式,上述步骤S106具体包括:分析各个代码块对应功能类型的执行逻辑;依据执行逻辑确定任意两个代码块之间的逻辑关系;通过关系定义的方式和逻辑关系对各个代码块之间建立逻辑连接,以关联多个代码块,得到多个代码块之间的关联关系。在本实施例中,通过对任一代码块进行深度分析,确定该代码块对应的执行逻辑,例如,代码块03涉及参数x、y,调用函数C,返回结果D,则将这些信息填入预定义的slot(slot包括参数、接口、函数、包等):code_03:(x,y,C,D,null,null…),每个单一信息可理解为节点;进一步地,根据执行逻辑将各个代码块进行关系定义(关系定义可理解为边)(即上述任意两个代码块之间的逻辑关系),通过一组关系定义再进行整体的逻辑连接,从而得到所有代码块之间的关联关系。例如,代码块04调用函数代码块05两次:relation_04_05.add(04_05_function_01),relation_04_05.add(04_05_function_02);代码块06调用了接口代码块07:relation_06_07.add(06_07_interface_01)。
通过上述实施步骤,本发明实施例通过支持同步代码修改和结构可视化的功能模块,解决各种实际场景下程序员无法快速系统化了解代码、高效修改代码的问题,提高了代码生成和输出效率。
基于上文各个实施例提供的代码可视化方法,基于同一发明构思,在本实施例中还提供了一种代码可视化系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明实施例提供的代码可视化系统,可以作为一个工具集成在浏览器或者是软件中,或是单独使用,在此不做限定。
图2是根据本发明实施例提供的一种代码可视化系统的结构框图,如图2所示,该系统包括读码组件200、模块化分析组件202、联合分析组件204及结构图绘图组件206,其中,读码组件200,用于获取源代码编译框内的源代码;模块化分析组件202,连接至上述读码组件200,用于根据源代码的功能类型将源代码划分为多个代码块;联合分析组件204,连接至上述模块化分析组件202,用于通过分析各个代码块对应功能类型的执行逻辑确定多个代码块之间的关联关系;结构图绘图组件206,连接至上述联合分析组件204,用于生成包括多个代码块之间的关联关系的第一代码结构图。
可选的,代码可视化系统还包括编译组件208及代码同步组件210,其中,编译组件208,连接至上述结构图绘图组件206,用于接收用户的编译指令;其中,编译指令携带有用户请求编译多个代码块中的目标代码块对应的唯一标识码;根据编译指令和唯一标识码对目标代码块中的代码文本内容进行编译;代码同步器210,连接至上述编译组件208,用于将编译后的代码文本内容导入源代码编译框,以更新源代码。
可选的,编译组件208用于执行以下至少之一:根据编译指令和唯一标识码对代码结构图中的目标代码块进行拖拽操作;根据编译指令和唯一标识码对代码结构图中的目标代码块进行展开操作,以展开目标代码块中的代码内容;根据编译指令和唯一标识码对代码结构图中的目标代码块中的代码内容进行修改。
可选的,结构图绘图组件206,还用于在模块化分析组件202根据源代码的功能类型将源代码划分为多个代码块之后,根据源代码的功能类型生成包括多个代码块的第二代码结构图。
可选的,模块化分析组件202,具体用于分析源代码对应的功能类型;基于功能类型对源代码进行模块化拆分,得到多个代码块。
可选的,联合分析组件204,具体用于分析各个代码块对应功能类型的执行逻辑;依据执行逻辑确定任意两个代码块之间的逻辑关系;通过关系定义的方式和逻辑关系对各个代码块之间建立逻辑连接,以关联多个代码块,得到多个代码块之间的关联关系。
下面结合一具体实施例,对本发明实施例做进一步地说明:
图3是根据本发明一具体实施例提供的代码可视化的流程图,如图3所示,包括以下步骤:
步骤S301,由python代码构成的读取器(即上述读码组件)读取文本层(即上述源代码编译框)中的所有代码,其中,文本层可以是源代码编译框中的代码/代码文件/含有多个关联代码文件的文件夹等形式;
步骤S302,一个或多个由python代码构成的模块化分析器(即上述模块化分析组件202)对读取的所有代码通过文本分析的方法进行模块化拆分,得到若干个代码块;
步骤S303,离散代码块,经模块化分析后的结果,且每个离散的代码块有自己的编号(即上述唯一标识码)、描述代码块的属性信息)与代码文本内容;
步骤S304,多个由python代码构成的联合分析器(即上述联合分析组件204)对离散的代码块进行深度分析,获取当前代码块的执行逻辑;接着,根据执行逻辑将各个代码块进行关系定义(关系定义可理解为边),通过一组关系定义,再进行整体的逻辑连接,得到多个代码块之间的关联关系;
步骤S305,按调用关系(即上述任意两个代码块之间的逻辑关系)重组的代码流:以关系定义的方式关联的所有代码块;
步骤S306a,结构图化器,根据先前定义的关系,以图的形式进行关联,并于编译环境内置界面展示出图,例如,二维结构图或三维结构图;
优选地,在步骤S303之后,直接进入步骤SS306b,进行源代码对应的代码块展示,呈现代码块图;
例如,源代码为:
Figure BDA0003381797990000101
在离散的代码块生成之后,根据代码块类别(即功能类型)使用不同颜色(颜色深浅)分块展示代码,如图4所示,图4是根据本发明一具体实施例提供的源代码的代码块展示示意图。
优选地,图5是根据本发明一具体实施例提供的图4中代码块对应的2D结构图,以当前编辑代码块为初始显示,以简洁、可展开、可编辑的形式展示连接起来的关联上下游代码块,可通过返回功能回到上一级/最高级代码块显示,可通过搜索功能返回指定代码块显示;以及图6所示,图6是根据本发明另一具体实施例提供的源代码对应的3D结构图,以3D可拖拽、可展开、可编辑的形式宏观展示所有代码块关联起来的图(示例图只能以2d形式展示3d图的某个角度,实际3d图可拖拽,从不同视角查看结构)。
步骤S307,在代码显示界面,显示各个代码块的结构图;
步骤S308,若通过操作图进入到某个代码块并进行的代码编辑;
步骤S309,由一个或多个由python代码构成的代码同步器,将通过图进行的编辑结果同步回文本层,保证通过结构图中修改的代码内容导入原始文件。
基于其它逻辑的模块化分析器/联合分析器编写,如以dataframe的形式存储属性、以字典的形式存储属性等;以n元组的形式定义关系等。
通过本发明实施例,解决了现有的编译器仅能使用编译器对不同编程语言的源代码进行编译,利用编译器的分析功能进行分析并得出程序结构分析结果,转化为图形描述文件,而仅能显示代码无法编辑代码的问题,以及解决了现有的编译工具无法支持代码即时同步回原始文件的问题。
需要说明的是,上述各个组件是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述组件均位于同一处理器中;或者,上述各个组件以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取源代码编译框内的源代码;
S2,根据所述源代码的功能类型将所述源代码划分为多个代码块;
S3,通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系;
S4,生成包括所述多个代码块之间的关联关系的第一代码结构图。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
基于上述图1所示方法和图2所示系统的实施例,为了实现上述目的,本发明实施例还提供了一种电子设备,如图7所示,包括存储器72和处理器71,其中存储器72和处理器71均设置在总线73上存储器72存储有计算机程序,处理器71执行计算机程序时实现图1所示的代码可视化方法。
基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个存储器(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
可选地,该设备还可以连接用户接口、网络接口、摄像头、射频(Radio Frequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种电子设备的结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种代码可视化方法,其特征在于,包括:
获取源代码编译框内的源代码;
根据所述源代码的功能类型将所述源代码划分为多个代码块;
通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系;
生成包括所述多个代码块之间的关联关系的第一代码结构图。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户的编译指令;其中,所述编译指令携带有所述用户请求编译所述多个代码块中的目标代码块对应的唯一标识码;
根据所述编译指令和所述唯一标识码对所述目标代码块中的代码文本内容进行编译;
将编译后的代码文本内容导入所述源代码编译框,以更新所述源代码。
3.根据权利要求2所述的方法,其特征在于,根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行编译包括以下至少之一:
根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行拖拽操作;
根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块进行展开操作,以展开所述目标代码块中的代码内容;
根据所述编译指令和所述唯一标识码对所述代码结构图中的目标代码块中的代码内容进行修改。
4.根据权利要求1所述的方法,其特征在于,在根据所述源代码的功能类型将所述源代码划分为多个代码块之后,所述方法还包括:
根据所述源代码的功能类型生成包括所述多个代码块的第二代码结构图。
5.根据权利要求1所述的方法,其特征在于,所述根据所述源代码的功能类型将所述源代码划分为多个代码块包括:
分析所述源代码对应的功能类型;
基于所述功能类型对所述源代码进行模块化拆分,得到所述多个代码块。
6.根据权利要求1所述的方法,其特征在于,所述通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系包括:
分析各个代码块对应功能类型的执行逻辑;
依据所述执行逻辑确定任意两个代码块之间的逻辑关系;
通过关系定义的方式和所述逻辑关系对各个代码块之间建立逻辑连接,以关联所述多个代码块,得到所述多个代码块之间的关联关系。
7.一种代码可视化系统,其特征在于,所述代码可视化系统包括读码组件、模块化分析组件、联合分析组件及结构图绘图组件,其中,
所述读码组件,用于获取源代码编译框内的源代码;
所述模块化分析组件,用于根据所述源代码的功能类型将所述源代码划分为多个代码块;
所述联合分析组件,用于通过分析各个代码块对应功能类型的执行逻辑确定所述多个代码块之间的关联关系;
所述结构图绘图组件,用于生成包括所述多个代码块之间的关联关系的第一代码结构图。
8.根据权利要求7所述的代码可视化系统,其特征在于,所述代码可视化系统还包括编译组件及代码同步组件,其中,
所述编译组件,用于接收用户的编译指令;其中,所述编译指令携带有所述用户请求编译所述多个代码块中的目标代码块对应的唯一标识码;根据所述编译指令和所述唯一标识码对所述目标代码块中的代码文本内容进行编译;
所述代码同步器,用于将编译后的代码文本内容导入所述源代码编译框,以更新所述源代码。
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202111436903.0A 2021-11-29 2021-11-29 代码可视化方法及系统、电子设备、存储介质 Pending CN114281317A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111436903.0A CN114281317A (zh) 2021-11-29 2021-11-29 代码可视化方法及系统、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111436903.0A CN114281317A (zh) 2021-11-29 2021-11-29 代码可视化方法及系统、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN114281317A true CN114281317A (zh) 2022-04-05

Family

ID=80870257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111436903.0A Pending CN114281317A (zh) 2021-11-29 2021-11-29 代码可视化方法及系统、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN114281317A (zh)

Similar Documents

Publication Publication Date Title
CN107844299B (zh) 一种Web应用开发工具的实现方法
CN111241454B (zh) 一种生成网页代码的方法、系统和装置
CN102646038B (zh) 控件内容展现方法、控件内容展现装置以及移动终端
US20080104096A1 (en) Software development system
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
Bohnet et al. Visual exploration of function call graphs for feature location in complex software systems
US20050137839A1 (en) Methods, apparatus and programs for system development
CN108170602B (zh) 一种测试用例生成方法、装置、终端及计算机可读介质
US8701086B2 (en) Simplifying analysis of software code used in software systems
US8412744B2 (en) Visualization of runtime analysis across dynamic boundaries
CN111488144A (zh) 一种数据处理方法以及设备
CN114281317A (zh) 代码可视化方法及系统、电子设备、存储介质
Weber et al. Visual comparison of trace files in vampir
JP2004157927A (ja) 帳票入力用プログラムの生成方式、生成プログラム及び生成方法
Wechselberg et al. Augmenting state models with data flow
CN114168122A (zh) 数据脚本的生成方法及装置
CN114253845A (zh) 异型架构集成体系的自动化测试方法和装置
CN113609823A (zh) 问卷逻辑的编辑方法、装置、终端设备及存储介质
Demetrescu et al. Visualization in algorithm engineering: Tools and techniques
Rentz et al. Extracting interactive actor-based dataflow models from legacy C code
Malloy et al. Using a molecular metaphor to facilitate comprehension of 3d object diagrams
JP3999949B2 (ja) 別名検索装置、別名検索方法及び別名検索用プログラム
Panas et al. Towards the Unified Recovery Architecture for Reverse Engineering.
Ziegenhagen et al. Expanding tracing capabilities using dynamic tracing data
CN110968342B (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