本发明涉及软件工程,具体涉及一种代码图片的可视化展示实现方法及装置。
背景技术:
1、在以数据结构与算法分析为首的教科书中,经常出现不易理解的代码。以往,学生在阅读此类书籍时,由于教科书中的代码为静态的文字,学生们对于教科书中的代码具体是如何运行会产生疑问,只能采用手动方式将书中代码在电脑上实际敲打出来以运行。例如,学生不理解教科书上一个排序的算法,只能手动将代码实现并设计测试用例带入该算法函数,并查看运行结果。
2、然而,上述实现方式对于学生理解代码还是效果不佳,主要原因是:(1)对于运行时代码的执行顺序不了解;(2)对于代码运行时(例如进行排序)各项参数的变动没办法掌握;(3)手动敲打代码方式极为耗时。
技术实现思路
1、针对现有技术中存在的缺陷,本发明的目的在于提供一种代码图片的可视化展示实现方法及装置,能够有效帮助用户增进对于代码图片中代码片段的理解,简化了用户实现代码的流程。
2、为达到以上目的,本发明提供的一种代码图片的可视化展示实现方法,具体包括以下步骤:
3、基于光学字符识别方式识别得到代码图片中的代码,并对识别得到的代码进行纠错处理;
4、基于代码格式化工具对代码进行格式化处理,并采用绘图工具将格式化后的代码制作成代码图片;
5、对格式化后的代码进行插桩处理,并采用测试用例产生工具对插桩后的代码产生测试用例;
6、运行测试用例,并采用特定显示方式对代码运行顺序进行展示,同时展示代码运行阶段的数值信息。
7、在上述技术方案的基础上,所述对识别得到的代码进行纠错处理,具体为:
8、基于启发式规则对代码进行纠错处理,以将光学字符识别时识别的错误字符替换为正确字符。
9、在上述技术方案的基础上,所述代码图片中,代码间采用等宽字体。
10、在上述技术方案的基础上,所述对格式化后的代码进行插桩处理,具体步骤包括:
11、采用源代码分析和转换工具对代码进行遍历,在每个语句前后插入打印该代码位置编号以及其参数值的代码。
12、在上述技术方案的基础上,所述在每个语句前后插入打印该代码位置编号以及其参数值的代码,具体为:
13、对于非循环的所有语句,在语句前插入打印该语句行编号的代码;
14、对于循环语句,则在语句前插入打印该循环开始与结束位置的代码;
15、对于赋值语句、初始值语句,以及输入特定参数名的调用函数语句,则另外在语句后插入打印该值的代码。
16、在上述技术方案的基础上,
17、在采用源代码分析和转换工具对代码进行遍历的同时,获取当前代码区块的位置信息;
18、所述位置信息包括代码起始行与结束字元编号,以及代码结束行与结束字元编号。
19、在上述技术方案的基础上,在采用测试用例产生工具对插桩后的代码产生测试用例时,在产生的测试用例中限制代入源代码的参数。
20、在上述技术方案的基础上,当采用测试用例产生工具对插桩后的代码产生测试用例之后,还包括:
21、采用源代码分析和转换工具遍历测试用例,判断测试用例中被测函数的参数是否完整,以挑选得到具备预设可视化理解效果的测试用例。
22、在上述技术方案的基础上,所述数值信息包括代码行编号、循环语句位置编号和代码中各项参数的数值。
23、本发明提供的一种代码图片的可视化展示实现装置,包括:
24、识别模块,其用于基于光学字符识别方式识别得到代码图片中的代码,并对识别得到的代码进行纠错处理;
25、第一处理模块,其用于基于代码格式化工具对代码进行格式化处理,并采用绘图工具将格式化后的代码制作成代码图片;
26、第二处理模块,其用于对格式化后的代码进行插桩处理,并采用测试用例产生工具对插桩后的代码产生测试用例;
27、执行模块,其用于运行测试用例,并采用特定显示方式对代码运行顺序进行展示,同时展示代码运行阶段的数值信息。
28、与现有技术相比,本发明的优点在于:能够有效帮助用户增进对于代码图片中代码片段的理解,简化了用户实现代码的流程,使得用户不必手动输入并实现代码,简化了用户理解代码的流程,自动产生测试用例带入代码图片中代码片段,自动产生可视化展示代码的运行语句顺序与相对应参数值的变化,具有自动化、低成本、易于理解等特点。
1.一种代码图片的可视化展示实现方法,其特征在于,具体包括以下步骤:
2.如权利要求1所述的一种代码图片的可视化展示实现方法,其特征在于,所述对识别得到的代码进行纠错处理,具体为:
3.如权利要求1所述的一种代码图片的可视化展示实现方法,其特征在于:所述代码图片中,代码间采用等宽字体。
4.如权利要求3所述的一种代码图片的可视化展示实现方法,其特征在于,所述对格式化后的代码进行插桩处理,具体步骤包括:
5.如权利要求4所述的一种代码图片的可视化展示实现方法,其特征在于,所述在每个语句前后插入打印该代码位置编号以及其参数值的代码,具体为:
6.如权利要求4所述的一种代码图片的可视化展示实现方法,其特征在于:
7.如权利要求1所述的一种代码图片的可视化展示实现方法,其特征在于:在采用测试用例产生工具对插桩后的代码产生测试用例时,在产生的测试用例中限制代入源代码的参数。
8.如权利要求7所述的一种代码图片的可视化展示实现方法,其特征在于,当采用测试用例产生工具对插桩后的代码产生测试用例之后,还包括:
9.如权利要求1所述的一种代码图片的可视化展示实现方法,其特征在于:所述数值信息包括代码行编号、循环语句位置编号和代码中各项参数的数值。
10.一种代码图片的可视化展示实现装置,其特征在于,包括: