System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体涉及一种基于程序流程图生成代码的方法及装置。
技术介绍
1、在编写计算机程序的时候,目前仍然是依赖于编程人员人工编写代码,代码的编写过程考验着编程人员的逻辑性和对编程语言的理解程度。当遇到复杂逻辑流程时,编程人员就面临着较高难度的代码编写工作,并且代码编写过程中容易出错,导致代码编写效率较低。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种基于程序流程图生成代码的方法及装置,以解决人工编写代码存在的代码编写效率较低等问题。
2、为实现上述目的,本专利技术实施例提供如下技术方案:
3、本专利技术实施例第一方面公开一种基于程序流程图生成代码的方法,所述方法包括:
4、获取树形结构的程序流程图,所述程序流程图由多个结点、结点与结点之间的转移线构成,每条所述转移线上设置有表达式;
5、提取所述程序流程图对应的图形数据;
6、基于所述图形数据,遍历搜索所述程序流程图的流程路径以生成表征所述程序流程图的意图的代码。
7、优选的,提取所述程序流程图对应的图形数据,包括:
8、从所述程序流程图中添加有入口线的根结点开始,按照各个所述结点的转移顺序记录转移关系,以提取得到所述程序流程图对应的图形数据。
9、优选的,基于所述图形数据,遍历搜索所述程序流程图的流程路径以生成表征所述程序流程图的意图的代码,包括:
10、基于所述图形数据,按照各个所述结点的转移顺序和所
11、优选的,还包括:
12、遍历搜索所述程序流程图的流程路径的过程中,对于所述程序流程图中具有多条所述转移线的第一目标结点,若所述第一目标结点的第一目标转移线上表达式的值为true,则停止遍历搜索所述第一目标结点的序号排在所述第一目标转移线之后的所述转移线对应的流程路径,所述第一目标转移线为所述第一目标结点的任意一条所述转移线。
13、优选的,还包括:
14、遍历搜索所述程序流程图的流程路径的过程中,对于当前遍历到的第二目标结点,如果所述第二目标结点沿着第二目标转移线向下转移到的结点不是叶子结点,则为所述第二目标转移线生成初始值为false的标志变量,所述第二目标转移线为所述第二目标结点的任意一条所述转移线,所述标志变量用于避免生成重复代码;
15、基于沿着所述第二目标转移线遍历搜索流程路径的过程中所涉及到的所述转移线上的表达式,确定是否将所述标志变量赋值为true;
16、在所述标志变量为ture的情况下,遍历搜索所述第二目标结点的序号排在所述第二目标转移线之后的所述转移线对应的流程路径。
17、本专利技术实施例第二方面公开一种基于程序流程图生成代码的装置,所述装置包括:
18、获取单元,用于获取树形结构的程序流程图,所述程序流程图由多个结点、结点与结点之间的转移线构成,每条所述转移线上设置有表达式;
19、提取单元,用于提取所述程序流程图对应的图形数据;
20、搜索单元,用于基于所述图形数据,遍历搜索所述程序流程图的流程路径以生成表征所述程序流程图的意图的代码。
21、优选的,所述提取单元具体用于:从所述程序流程图中添加有入口线的根结点开始,按照各个所述结点的转移顺序记录转移关系,以提取得到所述程序流程图对应的图形数据。
22、优选的,所述搜索单元具体用于:基于所述图形数据,按照各个所述结点的转移顺序和所述转移线上所述表达式的值来遍历搜索所述程序流程图的流程路径,以生成表征所述程序流程图的意图的代码,所述表达式包括转移条件表达式和/或动作表达式。
23、优选的,还包括:
24、停止单元,用于遍历搜索所述程序流程图的流程路径的过程中,对于所述程序流程图中具有多条所述转移线的第一目标结点,若所述第一目标结点的第一目标转移线上表达式的值为true,则停止遍历搜索所述第一目标结点的序号排在所述第一目标转移线之后的所述转移线对应的流程路径,所述第一目标转移线为所述第一目标结点的任意一条所述转移线。
25、优选的,还包括:
26、生成单元,用于遍历搜索所述程序流程图的流程路径的过程中,对于当前遍历到的第二目标结点,如果所述第二目标结点沿着第二目标转移线向下转移到的结点不是叶子结点,则为所述第二目标转移线生成初始值为false的标志变量,所述第二目标转移线为所述第二目标结点的任意一条所述转移线,所述标志变量用于避免生成重复代码;
27、确定单元,用于基于沿着所述第二目标转移线遍历搜索流程路径的过程中所涉及到的所述转移线上的表达式,确定是否将所述标志变量赋值为true;
28、相应的,所述搜索单元还用于:
29、在所述标志变量为ture的情况下,遍历搜索所述第二目标结点的序号排在所述第二目标转移线之后的所述转移线对应的流程路径。
30、基于上述本专利技术实施例提供的一种基于程序流程图生成代码的方法及装置,该方法为:获取树形结构的程序流程图,程序流程图由多个结点、结点与结点之间的转移线构成,每条转移线上设置有表达式;提取程序流程图对应的图形数据;基于图形数据,遍历搜索程序流程图的流程路径以生成表征程序流程图的意图的代码。本方案中,从树形结构的程序流程图中提取图形数据,基于图形数据来遍历搜索程序流程图的流程路径,从而生成表征程序流程图的意图的代码,程序流程图能够直观反映复杂逻辑流程,通过创建的程序流程图来自动生成与程序流程图的图形语义逻辑一致的代码,能够降低代码编写出错率和提高代码编写效率。
本文档来自技高网...【技术保护点】
1.一种基于程序流程图生成代码的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,提取所述程序流程图对应的图形数据,包括:
3.根据权利要求1所述的方法,其特征在于,基于所述图形数据,遍历搜索所述程序流程图的流程路径以生成表征所述程序流程图的意图的代码,包括:
4.根据权利要求1-3中任一所述的方法,其特征在于,还包括:
5.根据权利要求1-3中任一所述的方法,其特征在于,还包括:
6.一种基于程序流程图生成代码的装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述提取单元具体用于:从所述程序流程图中添加有入口线的根结点开始,按照各个所述结点的转移顺序记录转移关系,以提取得到所述程序流程图对应的图形数据。
8.根据权利要求6所述的装置,其特征在于,所述搜索单元具体用于:基于所述图形数据,按照各个所述结点的转移顺序和所述转移线上所述表达式的值来遍历搜索所述程序流程图的流程路径,以生成表征所述程序流程图的意图的代码,所述表达式包括转移条件表达式和/
9.根据权利要求6-8中任一所述的装置,其特征在于,还包括:
10.根据权利要求6-8中任一所述的装置,其特征在于,还包括:
...【技术特征摘要】
1.一种基于程序流程图生成代码的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,提取所述程序流程图对应的图形数据,包括:
3.根据权利要求1所述的方法,其特征在于,基于所述图形数据,遍历搜索所述程序流程图的流程路径以生成表征所述程序流程图的意图的代码,包括:
4.根据权利要求1-3中任一所述的方法,其特征在于,还包括:
5.根据权利要求1-3中任一所述的方法,其特征在于,还包括:
6.一种基于程序流程图生成代码的装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,...
【专利技术属性】
技术研发人员:张桥,李京燕,李强,
申请(专利权)人:北京世冠金洋科技发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。