CN105242935A - 一种执行程序源代码的显示界面生成系统和方法 - Google Patents
一种执行程序源代码的显示界面生成系统和方法 Download PDFInfo
- Publication number
- CN105242935A CN105242935A CN201510807968.XA CN201510807968A CN105242935A CN 105242935 A CN105242935 A CN 105242935A CN 201510807968 A CN201510807968 A CN 201510807968A CN 105242935 A CN105242935 A CN 105242935A
- Authority
- CN
- China
- Prior art keywords
- file
- module
- html
- variable
- source 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
Landscapes
- Stored Programmes (AREA)
Abstract
一种执行程序源代码的显示界面生成系统和方法,本发明涉及显示界面生成系统和方法。本发明是要解决本发明的目的是为了解决程序源代码的调用语句执行时间长、调试代价较高,获得代码运行前后程序状态的变化困难的问题,而提出的一种基于程序源代码执行流程的显示界面生成系统和方法。该系统包括数据输出、数据读取、界面读取、显示界面转换、显示界面调试、界面显示、源代码编译、HTML文件输出和框架构造模块;该方法是通过一、生成输入数据表、变量数据表和输出数据文件;二、转换为表格CodeTable;三、更新列表;四、输出到独立的HTML文件中;五、加载独立的HTML文件中等步骤实现的。本发明应用于显示界面生成领域。
Description
技术领域
本发明涉及显示界面生成系统和方法,特别涉及一种基于程序源代码执行流程的显示界面生成系统和方法;
背景技术
在进行计算机软件程序设计过程中需要了解关键软件模块的调用机制、分析软件核心算法的运行原理以及发现程序中可能出现的缺陷或错误,要达到这些目标就需要获得程序源代码执行流程,并将该流程展示给程序员。因此通过合理的界面显示程序源代码执行流程十分重要。
目前在计算机程序设计领域主要采用的方法是利用编程语言的集成开发环境如Eclipse、VisualStudio的Debug方式对程序进行单步调试,这种方法的缺陷是:一、某些程序源代码的调用语句需要较长的执行时间、或者专门的硬件或网络环境配合、每次调试代价较高,较难进行反复多次的调试运行;二、采用Debug方式只能沿着程序运行的流程逐步单方向的运行程序,当程序分析者想要反复查看某语句运行之前的程序的状态,就需要关闭程序重新进行调试,使得程序员想要反复的检查关键位置代码运行前后程序状态的变化十分困难;以上的缺陷使得程序源代码执行流程不易于查看。
因此需要设计一种执行程序源代码的显示界面的生成方法,将程序源代码执行流程以更易于查看的方式展示给程序员。
发明内容
本发明的目的是为了解决某些程序源代码的调用语句需要较长的执行时间、调试代价较高,较难进行反复多次的调试运行、采用Debug方式使得程序员想要反复的检查关键位置代码运行前后程序状态的变化十分困难的问题,而提出的一种基于程序源代码执行流程的显示界面生成系统和方法。
上述的发明目的是通过以下技术方案实现的:
一种基于程序源代码执行流程的显示界面生成系统包括:
数据输出模块、数据读取模块、界面读取模块、显示界面转换模块、显示界面调试模块、界面显示模块、源代码编译模块、HTML文件输出模块和框架构造模块;
其中,框架构造模块包括代码框子模块、变量框子模块、输出框子模块和运行步骤框子模块;数据读取模块包括显示界面变量数据子模块和显示界面输入数据子模块。
一种基于程序源代码执行流程的显示界面生成方法,具体是按照以下步骤进行的:
步骤一、利用源代码编译模块输入程序源代码文件生成待运行程序ProcessProgram、利用显示界面变量数据子模块将输入数据文件InputFile构造一个输入数据表InputTable;利用显示界面变量数据子模块将ParamFile构造变量数据表ParamTable;利用数据输出模块建立输出数据文件OutputFile;
步骤二、利用界面读取模块读取程序源代码文件,利用显示界面转换模块将程序源代码文件转换为HTML格式的表格CodeTable;
步骤三、利用界面显示模块根据待运行程序ProcessProgram在程序源代码文件所处的代码行位置更新CurrentCodeList列表;利用界面显示模块根据变量数据表ParamTable、ParamFile中描述的变量和变量的值更新CurrentParamList列表,利用界面显示模块根据ProcessProgram程序输出内容和输入数据表InputTable更新列表CurrentOutputList;
步骤四、利用HTML文件输出模块将步骤三更新的列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项内容输出到独立的HTML文件中;其中,独立的HTML文件包括将步骤二得到的CodeTable作为CurrentCodeList输出文件的目标;
步骤五、利用框架构造模块建立基于HTML脚本文件的框架界面,并利用输出框子模块将框架界面加载到步骤四中输出的独立的HTML文件中,其中,框架界面包含代码框、变量框、输出框和运行步骤框。
发明效果
本发明的目的是在于提出一种程序源代码执行流程的显示界面的生成方法,利用本发明可以将程序源代码执行流程以更易于查看的方式显示,并获得程序每一条源代码运行在运行流程中所处的位置、变量变化以及输出的内容如图9,达到更好的查看程序运行流程的目的。
利用本发明可以将软件和程序源代码生成一组包含展示程序运行流程、变量变化以及输出的内容的界面,利用该组界面可以更加直观的显示一段程序代码的运行过程,提高程序的显示效果如图9,以利于程序员理解程序的运行机理。
附图说明
图1为具体实施方式三提出的一种执行程序源代码的显示界面生成方法流程图;
图2为具体实施方式三提出的编译程序源代码文件生成待运行程序ProcessProgram,读取输入数据文InputFile和变量数据文件ParamFile,建立输出数据文件OutputFile的流程示意图;
图3为具体实施方式五提出的读取程序源代码文件,将其转换为HTML格式的表格CodeTable的流程图;
图4为具体实施方式六提出的通过调试程序单步调试待运行程序ProcessProgram直至结束的流程图;
图5为具体实施方式七提出的将列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项输出到独立的HTML文件之中的步骤流程图;
图6为具体实施方式一提出的构造的框架界面图;
图7为具体实施方式八提出的运行步骤框子模块示意图;
图8为具体实施方式八提出的.程序运行流程的展示的流程图;
图9为具体实施方式三提出的程序运行界面图;
具体实施方式
具体实施方式一:本实施方式的一种执行程序源代码的显示界面生成系统,具体包括:
数据输出模块、数据读取模块、界面读取模块、显示界面转换模块、显示界面调试模块、界面显示模块、源代码编译模块、HTML文件输出模块和框架构造模块;
其中,框架构造模块包括代码框子模块、变量框子模块、输出框子模块和运行步骤框子模块且代码框子模块、变量框子模块、输出框子模块和运行步骤框子模块在一个界面如图6;数据读取模块包括显示界面变量数据子模块和显示界面输入数据子模块。
具体实施方式二:本实施方式与具体实施方式一不同的是:
所述的显示界面输入数据子模块用于读取输入数据文件InputFile;
所述的显示界面变量数据子模块用于读取变量数据文件ParamFile;
所述的数据输出模块用于建立输出数据文件OutputFile;
所述的界面读取模块用于读取程序源代码文件;
所述的显示界面转换模块用于将程序源代码文件转换为HTML格式的表格CodeTable;
所述的显示界面调试模块用于单步调试待运行程序ProcessProgram;
所述的源代码编译模块用于输入程序源代码文件生成待运行程序ProcessProgram;
所述的界面显示模块根据待运行程序ProcessProgram所处程序源代码文件所处的代码行位置建立CurrentCodeList列表;
所述的HTML文件输出模块用于将列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项输出到独立的HTML(超文本标记语言,HyperTextMarkupLanguage)文件之中;其中,CurrentCodeList中的每一项为一个源代码对应的表格CurrentParamList的每一项的所有程序的变量和变量的值,CurrentOutputList的每一项为输出的文本内容;
所述的框架构造模块建立基于HTML脚本文件的框架界面加载列表CurrentCodeList、CurrentParamList和CurrentOutputList中输出的所有文件;
所述的代码框子模块用于展示调试待运行程序ProcessProgram在源代码中的所处的行;
所述的变量框子模块用于展示调试待运行程序ProcessProgram中变量的值;
所述的输出框子模块用于展示调试待运行程序ProcessProgram中输出的内容;
所述的运行步骤框子模块用于界面使用人员点击,使得代码框、变量框和输出框显示对应步骤程序运行的状态。其它步骤及参数与具体实施方式一相同。
具体实施方式三:结合图1说明本实施方式与具体实施方式一或二不同的是:一种执行程序源代码的显示界面生成方法,具体是按照以下步骤进行的:
步骤一、利用源代码编译模块输入程序源代码文件生成待运行程序ProcessProgram、利用显示界面变量数据子模块将输入数据文件InputFile构造一个输入数据表InputTable;利用显示界面变量数据子模块将ParamFile构造变量数据表ParamTable;利用数据输出模块建立输出数据文件OutputFile;(OutputFile文件里面没有内容随后会将ProcessProgram的输出重定向到OutputFile文件上,ProcessProgram会将自己的输出放到OutputFile文件里面该步骤的流程如图2所示;)
步骤二、利用界面读取模块读取程序源代码文件,利用显示界面转换模块将程序源代码文件转换为HTML格式的表格CodeTable;(程序源代码文件是一个多行的文本文件,读取这个文本文件的目标就是将文本文件转换为一个HTML格式的表格CodeTable,这个CodeTable会作为下一个步骤的模板显示代码运行的时候程序所处的位置);
步骤三、利用界面显示模块根据待运行程序ProcessProgram在程序源代码文件所处的代码行位置更新CurrentCodeList列表;利用界面显示模块根据变量数据表ParamTable、ParamFile中描述的变量和变量的值更新CurrentParamList列表,利用界面显示模块根据ProcessProgram程序输出内容和输入数据表InputTable更新列表CurrentOutputList;
通过显示界面调试模块的调试程序单步调试待运行程序ProcessProgram,调试待运行程序会按照源代码文件的每一行逐行的运行程序ProcessProgram直到程序运行结束;对于程序运行的每一步,将待运行程序ProcessProgram所处程序源代码文件所处的代码行位置记录在列表CurrentCodeList中,并将ParamFile中描述的变量(变量是程序运行过程中需要在内存中存储数据的单位)和变量的值(每一个变量均存储一个数值)记录在列表CurrentParamList中,ProcessProgram程序输出内容记录在CurrentOutputList中;
步骤四、利用HTML文件输出模块将步骤三更新的列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项内容输出到独立的HTML文件中;其中,独立的HTML文件包括将步骤二得到的CodeTable作为CurrentCodeList输出文件的目标;
其中,列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项包括三个列表的每一项对应着ProcessProgram运行的一步,CurrentCodeList中的每一项为一个CodeTabe在运行代码所在行突出显示的表格;CurrentParamList的每一项为所有程序的变量和其在运行到所有程序的变量时变量的值,CurrentOutputList的每一项为程序运行到所有程序的变量时输出的文本内容;
步骤五、利用框架构造模块建立基于HTML脚本文件的框架界面(按照图6那种结构进行排列),并利用输出框子模块将框架界面加载到步骤四中输出的独立的HTML文件中,其中,框架界面包含代码框、变量框、输出框和运行步骤框,每一个框均由HTML的Frame标记实现,展示程序运行在源代码中的所处的行、变量的值、程序输出以及当前运行的步骤。其它步骤及参数与具体实施方式一或二相同。
本实施方式效果:
本实施方式的目的是在于提出一种程序源代码执行流程的显示界面的生成方法,利用本实施方式可以将程序源代码执行流程以更易于查看的方式显示,并获得程序每一条源代码运行在运行流程中所处的位置、变量变化以及输出的内容如图9,达到更好的查看程序运行流程的目的。
利用本实施方式可以将软件和程序源代码生成一组包含展示程序运行流程、变量变化以及输出的内容的界面,利用该组界面可以更加直观的显示一段程序代码的运行过程,提高程序的显示效果如图9,以利于程序员理解程序的运行机理。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:步骤一中利用源代码编译模块输入程序源代码文件生成待运行程序ProcessProgram、利用显示界面变量数据子模块将输入数据文件InputFile构造一个输入数据表InputTable;利用显示界面变量数据子模块将ParamFile构造变量数据表ParamTable;利用数据输出模块建立输出数据文件OutputFile具体流程如下:
步骤一一、调用源代码编译模块的编译程序将程序源代码文件编译为可执行文件,将可执行文件作为待运行程序ProcessProgram;
步骤一二、利用显示界面输入数据子模块读取输入数据文件InputFile,在内存中利用显示界面变量数据子模块将InputFile构造一个输入数据表InputTable;
其中,输入数据文件InputFile为0行~1000行的文本文件,该文本文件的每一行对应待运行程序的输入;
InputFile的每一行的格式如下:
代码行格式为需输入的文本内容,代码行为需要输入的文本内容,代码行对应程序源代码文件中的输入语句所在的行(如:C语言的scanf、Java语言的Scanner);输入的文本内容为一段文本,当程序运行到对应代码行时需要输入的内容;在内存构造一个输入数据表InputTable,读取输入数据文件所有的内容,文件的每一行对应输入数据表的一个条目InputRow(Key,Value);每一个条目包含一个键值字段Key用来存储代码行,一个数据字段用Value来存储需输入的文本内容;
步骤一三、新建一个空的输出数据文件OutputFile;
步骤一四、利用显示界面变量数据子模块读取变量数据文件ParamFile,根据ParamFile在内存中构造变量数据表ParamTable;
其中,变量数据文件是一个1行~1000行的文本文件,变量数据文件的每一行对应待运行程序ProcessProgram中的变量;
变量数据文件的每一行内容的格式如下:
变量名格式为变量输出的格式模板;变量名为变量输出的格式模板,变量名为程序源代码文件中定义变量的名字(如:代码intcounter;定义了一个counter变量);变量输出的格式模板为将变量转换为字符串的时候使用的转换模板串;在内存中构造一个变量数据表ParamTable,读取变量文件所有的内容,文件的每一行对应变量数据表的一个条目ParamRow(ParamKey,ParamValue,ParamText);该条目包含一个键值字段ParamKey用来存储变量名,一个数据字段用ParamValue来存储变量输出格式模板,一个字符串字段ParamText存储一个空字符串。其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:步骤二中利用界面读取模块读取程序源代码文件,利用显示界面转换模块将程序源代码文件转换为HTML格式的表格CodeTable具体流程如下:该步骤的流程如图3所示;
步骤二一、建立空的HTML表格,空的HTML表格包含两列,第一列为代码行号i,第二列为代码内容,其中,第二列为代码内容对应程序源代码文件的文本内容;
步骤二二、设代码行号计数器CodeCounter=1;
步骤二三、利用界面读取模块读取程序源代码文件中第i行内容到CodeText的文本;其中,CodeText为CodeTable表的第二列,i=1,2,3,…,N;N为程序源代码文件的总行数;
步骤二四、如果读取成功即没有读取到程序源代码文件的末尾那么转到步骤二五,否则(读取到了程序源代码文件的末尾再也读取不到内容)转到步骤二八;
步骤二五、建立CodeTable表的一行内容为CodeRow,其中,CodeRow包含两列内容:第一列内容为代码行号计数器CodeCounter文本,第二列内容为CodeText文本;
步骤二六、将CodRow加入到表格CodeTable的末尾;
步骤二七、CodeCounter=CodeCounter+1,转到步骤二三;
步骤二八、将源代码文件转换为HTML格式的CodeTable的转换过程结束。其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:步骤三中利用界面显示模块根据待运行程序ProcessProgram在程序源代码文件所处的代码行位置更新CurrentCodeList列表;利用界面显示模块根据变量数据表ParamTable、ParamFile中描述的变量和变量的值更新CurrentParamList列表,利用界面显示模块根据ProcessProgram程序输出内容和输入数据表InputTable更新列表CurrentOutputList如图4所示,具体步骤如下:
步骤三一、建立空的列表CurrentCodeList、CurrentParamList和CurrentOutputList;
步骤三二、启动显示界面调试模块的调试程序,对待运行程序ProcessProgram进行单步调试,将ProcessProgram的输出重定向到输出数据文件OutputFile上;
步骤三三、单步运行步骤三二中的重定向后的ProcessProgram(重定向不会影响到ProcessProgram,仅仅是ProcessProgram的输出内容会放到OutputFile上);
步骤三四、如果程序运行结束即运行程序ProcessProgram到最末尾,则转到步骤三十一,否则(程序ProcessProgram没有运行到最末尾)转到步骤三五;
步骤三五、获取步骤三四运行程序ProcessProgram所对应的是源代码文件的行数LineNum;
步骤三六、建立表格CurrentCodeTable=CodeTable,这个等号表示的是CurrentCodeTable的所有内容(CodeTable是前面步骤生成的一个由行和列构成的表格)与CodeTable完全的一样(行、列以及内容完全一样);
将CurrentCodeTable的第LineNum行进行突出显示,将CurrentCodeTable加入到CurrentCodeList的末尾;
其中,突出显示有很多方式,突出显示可选的方式如下:
1、将表格CurrentCodeTable中ProcessProgram运行所对应的代码所在的行的字体进行变更,如改为粗体,该为更大字体或者加上下划线;
2.将ProcessProgram运行所对应的代码所在的行的样式进行改变,如改为反色,改为醒目颜色的边框;
步骤三七、读取内存中构造的变量数据表ParamTable(如表1所示)的每一行,对每一行记录的变量名ParamKey编译程序访问ParamKey对应的数值,如果能够获得ParamKey对应的数值(如表2所示),那么将该对应数值以变量输出格式模板ParamValue格式转换为字符串存储到ParamText中(如表2所示)得到更新后的变量数据表ParamTable;将更新后的变量数据表ParamTable添加在CurrentParamList之中;如果获得不到ParamKey对应数值那么设定ParamText为一个空字符串;将ParamTable加入到列表CurrentParamList的末尾;其中,变量数据表ParamTable包括ParamKey对应的数值和ParamText;ParamText为变量输出格式模板转换成的字符串变量的值;CurrentParamList由变量数据表ParamTable组成;
步骤三八、读取输出数据文件OutputFile的全部内容到变量CurrentText的文本;
步骤三九、查找输入数据表InputTable的每一表项,如果有代码行Key=LineNum,那么将代码行Key对应的输入的文本内容Value重定向输入给正在运行的ProcessProgram,设定PrevText=Value;如果Key与LineNum不相等,那么设定PrevText=空字符串;
步骤三十、将CurrentText=CurrentText+PrevText加入到列表CurrentOutputList的末尾,转到步骤三三;
步骤三十一、调试过程结束。其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:步骤四中利用HTML文件输出模块将步骤三更新的列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项内容输出到独立的HTML文件中该过程的步骤四如图5所示,具体步骤如下:
步骤四一、设文件个数FileNum与CurrentCodeList中列表元素的个数相等;
步骤四二、文件名计数器FileCounter=1;
步骤四三、读取列表CurrentCodeList的第FileCounter项,将第FileCounter项存储到文件名为FileCounter+”_Code”的HTML文件中;
对于列表CurrentCodeList的第FileCounter项内容为一个HTML结构的表格,将第FileCounter个项内容直接存储为HTML文件中;
步骤四四、读取列表CurrentParamList的第FileCounter项,将CurrentParamList列表的第FileCounter项存储到名文件为FileCounter+”_Param”的HTML文件中;
列表CurrentParamList的第FileCounter项CurrentParamList的第FileCounter项内容为一个变量数据表ParamTable,将列表CurrentParamList的所有ParamText不为空字符串的行转换存储为HTML结构的表格,将HTML表格存储为HTML文件的形式;其中,HTML结构的表格包含2列,HTML结构的表格第一列对应ParamKey,HTML结构的表格第二列存储ParamText,
步骤四五、读取CurrentOutputList的第FileCounter项,将CurrentOutputList的第FileCounter项存储到文件名为FileCounter+”_Output”的HTML文件中;
CurrentOutputList的第FileCounter项的CurrentOutputList的第FileCounter项内容为一个字符串;将该文本进行HTML编码后存储成HTML文件形式;
步骤四六、FileCounter=FileCounter+1;
步骤四七、如果FileCounter大于文件个数FileNum那么转到步骤四八,否则(FileCounter小于等于FileNum)转到步骤四三;
步骤四八,文件输出过程结束。其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:步骤五中利用框架构造模块建立基于HTML脚本文件的框架界面(按照图6那种结构进行排列),并利用输出框子模块将框架界面加载到步骤四中输出的独立的HTML文件中,构造的框架界面如图6所示,该框架界面包含4个由HTML的Frame标记实现的框架具体过程:
步骤五一、建立基于HTML脚本文件的框架界面,利用代码框子模块的代码框程序将HTML脚本文件的框架界面加载到(Load)步骤四输出的列表CurrentCodeList中的文件名1_Code至文件名FileNum_Code的所有HTML文件,用于展示程序运行在源代码中的所处的行;
步骤五二、利用变量框子模块的变量框程序将HTML脚本文件的框架界面加载步骤四输出的列表CurrentParamList中的文件名1_Param至文件名FileNum_Param的HTML文件,用于展示程序运行中变量的值;
步骤五三、利用输出框子模块的输出框程序将HTML脚本文件的框架界面加载步骤四输出的列表CurrentParamList中的1_Output至FileNum_Output的HTML文件,用于展示程序运行中输出的内容;
步骤五四、利用运行步骤框子模块的确定步骤框中的列表CurrentParamList范围为1至文件个数FileNum如图7所示,将步骤框中的列表的每一项确定为一个HTML链接,每个HTML链接与待运行程序ProcessProgram相对应;
如图8所示通过4个由HTML的Frame标记实现的框架可以实现程序运行流程的显示,具体步骤如下:
一、将运行步骤框中的列表中的某一项对应的编号存储在步骤变量StepNum中;
二、代码框将1_Code至FileNum_Code的所有HTML文件显示状态改为隐藏,将第StepNum个文件StepNum_Code建立为显示状态;
三、变量框将1_Param至FileNum_Param的所有HTML文件显示状态改为隐藏,将第StepNum个文件StepNum_Param建立为显示状态;
四、输出框将1_Output至FileNum_Output的所有HTML文件显示状态建立为隐藏状态,将第StepNum个文件StepNum_Output的建立为显示状态。其它步骤及参数与具体实施方式一至七之一相同。
Claims (7)
1.一种执行程序源代码的显示界面生成系统,其特征在于,它具体包括:
数据输出模块、数据读取模块、界面读取模块、显示界面转换模块、显示界面调试模块、界面显示模块、源代码编译模块、HTML文件输出模块和框架构造模块;
其中,框架构造模块包括代码框子模块、变量框子模块、输出框子模块和运行步骤框子模块;数据读取模块包括显示界面变量数据子模块和显示界面输入数据子模块。
2.根据权利要求1所述一种执行程序源代码的显示界面生成系统,其特征在于:
所述的显示界面输入数据子模块用于读取输入数据文件InputFile;
所述的显示界面变量数据子模块用于读取变量数据文件ParamFile;
所述的数据输出模块用于建立输出数据文件OutputFile;
所述的界面读取模块用于读取程序源代码文件;
所述的显示界面转换模块用于将程序源代码文件转换为HTML格式的表格CodeTable;
所述的显示界面调试模块用于单步调试待运行程序ProcessProgram;
所述的源代码编译模块用于输入程序源代码文件生成待运行程序ProcessProgram;
所述的界面显示模块根据待运行程序ProcessProgram所处程序源代码文件所处的代码行位置建立CurrentCodeList列表;
所述的HTML文件输出模块用于将列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项输出到独立的HTML文件之中;其中,CurrentCodeList中的每一项为一个源代码对应的表格CurrentParamList的每一项的所有程序的变量和变量的值;
所述的框架构造模块建立基于HTML脚本文件的框架界面加载列表CurrentCodeList、CurrentParamList和CurrentOutputList中输出的所有文件;
所述的代码框子模块用于展示调试待运行程序ProcessProgram在源代码中的所处的行;
所述的变量框子模块用于展示调试待运行程序ProcessProgram中变量的值;
所述的输出框子模块用于展示调试待运行程序ProcessProgram中输出的内容;
所述的运行步骤框子模块用于显示代码框、变量框和输出框显示对应步骤程序运行的状态。
3.一种执行程序源代码的显示界面生成方法,其特征在于,该方法具体是按照以下步骤进行的:
步骤一、利用源代码编译模块输入程序源代码文件生成待运行程序ProcessProgram、利用显示界面变量数据子模块将输入数据文件InputFile构造一个输入数据表InputTable;利用显示界面变量数据子模块将ParamFile构造变量数据表ParamTable;利用数据输出模块建立输出数据文件OutputFile;
步骤二、利用界面读取模块读取程序源代码文件,利用显示界面转换模块将程序源代码文件转换为HTML格式的表格CodeTable;
步骤三、利用界面显示模块根据待运行程序ProcessProgram在程序源代码文件所处的代码行位置更新CurrentCodeList列表;利用界面显示模块根据变量数据表ParamTable、ParamFile中描述的变量和变量的值更新CurrentParamList列表,利用界面显示模块根据ProcessProgram程序输出内容和输入数据表InputTable更新列表CurrentOutputList;
步骤四、利用HTML文件输出模块将步骤三更新的列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项内容输出到独立的HTML文件中;其中,独立的HTML文件包括将步骤二得到的CodeTable作为CurrentCodeList输出文件的目标;
步骤五、利用框架构造模块建立基于HTML脚本文件的框架界面,并利用输出框子模块将框架界面加载到步骤四中输出的独立的HTML文件中,其中,框架界面包含代码框、变量框、输出框和运行步骤框。
4.根据权利要求3所述一种执行程序源代码的显示界面生成方法,其特征在于:步骤二中利用界面读取模块读取程序源代码文件,利用显示界面转换模块将程序源代码文件转换为HTML格式的表格CodeTable具体流程如下:
步骤二一、建立空的HTML表格,空的HTML表格包含两列,第一列为代码行号i,第二列为代码内容,其中,第二列为代码内容对应程序源代码文件的文本内容;
步骤二二、设代码行号计数器CodeCounter=1;
步骤二三、利用界面读取模块读取程序源代码文件中第i行内容到CodeText的文本;其中,CodeText为CodeTable表的第二列,i=1,2,3,…,N;N为程序源代码文件的总行数;
步骤二四、如果读取成功即没有读取到程序源代码文件的末尾那么转到步骤二五,否则转到步骤二八;
步骤二五、建立CodeTable表的一行内容为CodeRow,其中,CodeRow包含两列内容:第一列内容为代码行号计数器CodeCounter文本,第二列内容为CodeText文本;
步骤二六、将CodRow加入到表格CodeTable的末尾;
步骤二七、CodeCounter=CodeCounter+1,转到步骤二三;
步骤二八、将源代码文件转换为HTML格式的CodeTable的转换过程结束。
5.根据权利要求4所述一种执行程序源代码的显示界面生成方法,其特征在于:步骤三中利用界面显示模块根据待运行程序ProcessProgram在程序源代码文件所处的代码行位置更新CurrentCodeList列表;利用界面显示模块根据变量数据表ParamTable、ParamFile中描述的变量和变量的值更新CurrentParamList列表,利用界面显示模块根据ProcessProgram程序输出内容和输入数据表InputTable更新列表CurrentOutputList具体步骤如下:
步骤三一、建立空的列表CurrentCodeList、CurrentParamList和CurrentOutputList;
步骤三二、启动显示界面调试模块的调试程序,对待运行程序ProcessProgram进行单步调试,将ProcessProgram的输出重定向到输出数据文件OutputFile上;
步骤三三、单步运行步骤三二中的重定向后的ProcessProgram;
步骤三四、如果程序运行结束即运行程序ProcessProgram到最末尾,则转到步骤三十一,否则转到步骤三五;
步骤三五、获取步骤三四运行程序ProcessProgram所对应的是源代码文件的行数LineNum;
步骤三六、建立表格CurrentCodeTable=CodeTable;将CurrentCodeTable加入到CurrentCodeList的末尾;
步骤三七、读取内存中构造的变量数据表ParamTable的每一行,对每一行记录的变量名ParamKey编译程序访问ParamKey对应的数值,如果能够获得ParamKey对应的数值,那么将该对应数值以变量输出格式模板ParamValue格式转换为字符串存储到ParamText中得到更新后的变量数据表ParamTable;将更新后的变量数据表ParamTable添加在CurrentParamList之中;如果获得不到ParamKey对应数值那么设定ParamText为一个空字符串;将ParamTable加入到列表CurrentParamList的末尾;其中,变量数据表ParamTable包括ParamKey对应的数值和ParamText;ParamText为变量输出格式模板转换成的字符串变量的值;CurrentParamList由变量数据表ParamTable组成;
步骤三八、读取输出数据文件OutputFile的全部内容到变量CurrentText的文本;
步骤三九、查找输入数据表InputTable的每一表项,如果有代码行Key=LineNum,那么将代码行Key对应的输入的文本内容Value重定向输入给正在运行的ProcessProgram,设定PrevText=Value;如果Key与LineNum不相等,那么设定PrevText=空字符串;
步骤三十、将CurrentText=CurrentText+PrevText加入到列表CurrentOutputList的末尾,转到步骤三三;
步骤三十一、调试过程结束。
6.根据权利要求5所述一种执行程序源代码的显示界面生成方法,其特征在于:步骤四中利用HTML文件输出模块将步骤三更新的列表CurrentCodeList、CurrentParamList和CurrentOutputList中的每一项内容输出到独立的HTML文件中具体步骤如下:
步骤四一、设文件个数FileNum与CurrentCodeList中列表元素的个数相等;
步骤四二、文件名计数器FileCounter=1;
步骤四三、读取列表CurrentCodeList的第FileCounter项,将第FileCounter项存储到HTML文件中;
对于列表CurrentCodeList的第FileCounter项内容为一个HTML结构的表格,将第FileCounter个项内容直接存储为HTML文件中;
步骤四四、读取列表CurrentParamList的第FileCounter项,将CurrentParamList列表的第FileCounter项存储到HTML文件中;
列表CurrentParamList的第FileCounter项CurrentParamList的第FileCounter项内容为一个变量数据表ParamTable,将列表CurrentParamList的所有ParamText不为空字符串的行转换存储为HTML结构的表格,将HTML表格存储为HTML文件的形式;其中,HTML结构的表格包含2列,HTML结构的表格第一列对应ParamKey,HTML结构的表格第二列存储ParamText,
步骤四五、读取CurrentOutputList的第FileCounter项,将CurrentOutputList的第FileCounter项存储到HTML文件中;
CurrentOutputList的第FileCounter项的CurrentOutputList的第FileCounter项内容进行HTML编码后存储成HTML文件形式;
步骤四六、FileCounter=FileCounter+1;
步骤四七、如果FileCounter大于文件个数FileNum那么转到步骤四八,否则转到步骤四三;
步骤四八,文件输出过程结束。
7.根据权利要求6所述一种执行程序源代码的显示界面生成方法,其特征在于:步骤五中利用框架构造模块建立基于HTML脚本文件的框架界面,并利用输出框子模块将框架界面加载到步骤四中输出的独立的HTML文件中具体过程:
步骤五一、建立基于HTML脚本文件的框架界面,利用代码框子模块的代码框程序将HTML脚本文件的框架界面加载到步骤四输出的列表CurrentCodeList中的所有HTML文件;
步骤五二、利用变量框子模块的变量框程序将HTML脚本文件的框架界面加载步骤四输出的列表CurrentParamList中的HTML文件;
步骤五三、利用输出框子模块的输出框程序将HTML脚本文件的框架界面加载步骤四输出的列表CurrentParamList中的HTML文件;
步骤五四、利用运行步骤框子模块的确定步骤框中的列表CurrentParamList范围为1至文件个数FileNum,将步骤框中的列表的每一项确定为一个HTML链接,每个HTML链接与待运行程序ProcessProgram相对应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510807968.XA CN105242935A (zh) | 2015-11-19 | 2015-11-19 | 一种执行程序源代码的显示界面生成系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510807968.XA CN105242935A (zh) | 2015-11-19 | 2015-11-19 | 一种执行程序源代码的显示界面生成系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105242935A true CN105242935A (zh) | 2016-01-13 |
Family
ID=55040593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510807968.XA Pending CN105242935A (zh) | 2015-11-19 | 2015-11-19 | 一种执行程序源代码的显示界面生成系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105242935A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569939A (zh) * | 2016-10-28 | 2017-04-19 | 上海斐讯数据通信技术有限公司 | 一种控件脚本程序多国文字解析系统及多国文字解析方法 |
CN106625659A (zh) * | 2016-11-24 | 2017-05-10 | 广州途道信息科技有限公司 | 一种便于用户实时监控机器人运行状态的机器人控制方法 |
CN111124378A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 代码生成方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0785510B1 (en) * | 1996-01-17 | 2003-04-16 | Nec Corporation | Program debugging system for debugging a program having a graphical user interface |
CN1801149A (zh) * | 2004-12-16 | 2006-07-12 | 微软公司 | 用于将格式化文档转化为网页的系统和方法 |
US20130036403A1 (en) * | 2011-08-03 | 2013-02-07 | Daniel Geist | Method and apparatus for debugging programs |
CN104133763A (zh) * | 2013-05-03 | 2014-11-05 | 富泰华工业(深圳)有限公司 | 程序调试系统及方法 |
-
2015
- 2015-11-19 CN CN201510807968.XA patent/CN105242935A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0785510B1 (en) * | 1996-01-17 | 2003-04-16 | Nec Corporation | Program debugging system for debugging a program having a graphical user interface |
CN1801149A (zh) * | 2004-12-16 | 2006-07-12 | 微软公司 | 用于将格式化文档转化为网页的系统和方法 |
US20130036403A1 (en) * | 2011-08-03 | 2013-02-07 | Daniel Geist | Method and apparatus for debugging programs |
CN104133763A (zh) * | 2013-05-03 | 2014-11-05 | 富泰华工业(深圳)有限公司 | 程序调试系统及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569939A (zh) * | 2016-10-28 | 2017-04-19 | 上海斐讯数据通信技术有限公司 | 一种控件脚本程序多国文字解析系统及多国文字解析方法 |
CN106569939B (zh) * | 2016-10-28 | 2020-06-12 | 北京数科网维技术有限责任公司 | 一种控件脚本程序多国文字解析系统及多国文字解析方法 |
CN106625659A (zh) * | 2016-11-24 | 2017-05-10 | 广州途道信息科技有限公司 | 一种便于用户实时监控机器人运行状态的机器人控制方法 |
CN111124378A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 代码生成方法和装置 |
CN111124378B (zh) * | 2018-10-31 | 2024-02-13 | 北京国双科技有限公司 | 代码生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7975233B2 (en) | Automatic conversion of a textual language into a graphical program representation | |
US7954059B2 (en) | Automatic conversion of text-based code having function overloading and dynamic types into a graphical program for compiled execution | |
CN105022630B (zh) | 一种组件管理系统及组件管理方法 | |
CN103500087A (zh) | 一种基于maven插件和freemarker模版的代码生成方法及装置 | |
CN104657189A (zh) | 混合式动态码编译装置、方法及其服务系统 | |
CN101859244A (zh) | 多工具链工程构建方法及系统 | |
CN109255107A (zh) | 组态软件处理方法、装置、计算机设备和存储介质 | |
CN105242935A (zh) | 一种执行程序源代码的显示界面生成系统和方法 | |
Grimmer et al. | Supporting program analysis for non-mainstream languages: experiences and lessons learned | |
CN110362312A (zh) | 一种适用于多种框架的语法转换编译系统及方法 | |
CN103235724A (zh) | 基于原子操作语义描述的多源二进制代码一体化翻译方法 | |
CN108762751A (zh) | 一种逻辑图形组态及转成数据流的方法及系统 | |
CN104317715A (zh) | 基于模拟器的中央处理器指令集的功能测试自动实施方法 | |
Balachandran | Fix-it: An extensible code auto-fix component in review bot | |
CN105988854A (zh) | 动态编译方法及装置 | |
S. Nobile et al. | ginSODA: massive parallel integration of stiff ODE systems on GPUs | |
CN111596923B (zh) | Haxe静态链接库构建方法、装置和电子设备 | |
Ivanova et al. | Domain-specific languages for embedded systems portable software development | |
US8954307B1 (en) | Chained programming language preprocessors for circuit simulation | |
Ma et al. | A hybrid model transformation approach based on j2ee platform | |
Visser | Understanding software through linguistic abstraction | |
CN103488519A (zh) | 一种交互式脚本语言解释器的实现方法 | |
Jiménez et al. | MeTAGeM-Trace: Improving trace generation in model transformation by leveraging the role of transformation models | |
Wenger et al. | IEC 61131-3 model for model-driven development | |
CN109062556A (zh) | 一种多返回值的函数编程系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160113 |
|
RJ01 | Rejection of invention patent application after publication |