一种代码生成方法和装置制造方法及图纸

技术编号:23982550 阅读:23 留言:0更新日期:2020-04-29 12:00
本发明专利技术公开了一种代码生成方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:确定模型和当前语言;其中,所述模型中包括:流程图;所述流程图由若干图元构成;针对每个所述图元:确定当前图元的类型;根据与语言和图元的类型对应的解析规则,确定所述当前语言和所述当前图元的类型对应的当前解析规则;根据所述当前解析规则,将所述当前图元转换成所述当前语言的代码。该方法能够基于与语言和图元的类型对应的解析规则生成不同语言的代码,避免重新开发,降低开发成本。

A code generation method and device

【技术实现步骤摘要】
一种代码生成方法和装置
本专利技术涉及计算机
,尤其涉及一种代码生成方法和装置。
技术介绍
在程序开发过程中,如果开发框架发生变更,常常需要更换底层开发语言。例如,变更前的开发框架采用COBOL(CommonBusiness-OrientedLanguage,面向商业的通用语言),变更后的开发框架采用Java。此时,开发人员需要重新进行开发。但是,重新开发的成本较高。
技术实现思路
有鉴于此,本专利技术实施例提供一种代码生成方法和装置,能够基于与语言和图元的类型对应的解析规则生成不同语言的代码,避免重新开发,降低开发成本。第一方面,本专利技术实施例提供了一种代码生成方法,包括:确定模型和当前语言;其中,所述模型中包括:流程图;所述流程图由若干图元构成;针对每个所述图元:确定当前图元的类型;根据与语言和图元的类型对应的解析规则,确定所述当前语言和所述当前图元的类型对应的当前解析规则;根据所述当前解析规则,将所述当前图元转换成所述当前语言的代码。优选地,所述语言,包括:COBOL和/或Java。优选地,与Java和流程图元对应的解析规则,包括:转换后的字段的段名为m+所述流程图元的标识中的驼峰字符串;所述转换后的字段的参数为所述模型对应的程序的参数,返回值为空。优选地,与Java和数据传递图元对应的解析规则,包括:确定在所述数据传递图元中是否存在条件语句,如果是,生成if语句,其中,所述条件语句之后的赋值语句位于所述if语句的语句体中;根据所述赋值语句的前、后数据,生成set语句。优选地,与Java和检查报错图元对应的解析规则,包括:确定所述检查报错图元中是否存在判断语句,如果是,将所述判断语句转换成if语句;根据所述分析检查报错图元中的报错内容节点,确定报错码和报错信息;根据所述报错码和所述报错信息,生成try-catch语法块。优选地,与Java和计算图元对应的解析规则,包括:获取所述计算图元的若干变量;生成与各个所述变量对应的set语句。优选地,与Java和运算图元对应的解析规则,包括:确定所述运算图元中的若干变量;根据所述变量及其对应的操作符,将所述运算图元转换成Java代码。优选地,与Java和初始化图元对应的解析规则,包括:提取所述初始化图元中的数据列表;对所述数据列表中的数据赋初始值。优选地,与Java和字符串处理图元对应的解析规则,包括:如果字符串处理为拼接,则通过“+”连接各个第一字符串;如果所述字符串处理为分割,则通过split方法分割第二字符串,将得到的字符串数组中的元素赋值给相应的变量。优选地,与Java和调用节点图元对应的解析规则,包括:确定所述调用节点图元是否存在对应的接口,如果是,确定所述接口对应的数据结构;初始化所述数据结构;为所述接口中的字段赋值。优选地,与Java和条件分支图元对应的解析规则,包括:将所述条件分支图元转换成ifelse语句。优选地,与Java和判断分支图元对应的解析规则,包括:将所述判断分支图元转换成ifelse语句。优选地,与Java和循环分支图元对应的解析规则,包括:如果所述循环分支图元为后验循环,则将所述循环分支图元转换为dowhile语句;如果所述循环分支图元为先验循环,则将所述循环分支图元转换为for语句。第二方面,本专利技术实施例提供了一种代码生成装置,包括:确定模块,配置为确定模型和当前语言;其中,所述模型中包括:流程图;所述流程图由若干图元构成;解析模块,配置为针对每个所述图元:确定当前图元的类型;根据与语言和图元的类型对应的解析规则,确定所述当前语言和所述当前图元的类型对应的当前解析规则;根据所述当前解析规则,将所述当前图元转换成所述当前语言的代码。第三方面,本专利技术实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。第四方面,本专利技术实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。上述专利技术中的一个实施例具有如下优点或有益效果:该方法能够基于与语言和图元的类型对应的解析规则生成不同语言的代码,避免重新开发,降低开发成本。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是本专利技术一个实施例提供的一种代码生成方法的流程图;图2是本专利技术另一个实施例提供的一种代码生成方法的流程图;图3是本专利技术一个实施例提供的一种代码生成装置的示意图;图4是本专利技术实施例可以应用于其中的示例性系统架构图;图5是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。在程序开发过程中,如果开发框架发生变更,常常需要更换底层开发语言。例如,变更前的开发框架采用COBOL,变更后的开发框架采用Java。此时,开发人员需要重新进行开发。并且,在此过程中,开发人员需要掌握不同的语言。因此,现有技术的转换成本较高。鉴于此,本专利技术实施例提供了一种代码生成方法,如图1所示,该方法包括:步骤101:确定模型和当前语言;其中,模型中包括:流程图;流程图由若干图元构成。模型可以定义所要实现的业务的抽象描述。其可以通过UML(UnifiedModelingLanguage,统一建模语言)、XML(ExtensibleMarkupLanguage,可扩展标记语言)等方式表示。本专利技术实施例中所述的模型可以为:业务规则模型、测试模型、企业架构模型等。其中,对于业务规则模型,业务可以为贷款、货币兑换等。当前语言指的是转换后的代码的语言,当前语言可以根据用户输入确定。当前语言可以为COBOL、Java等。在本专利技术实施例中,并不限定确定模型和确定当前语言的顺序,两者可以同时确定,也可以先确定模型再确定当前语言,或者先确定当前语言再确定模型。步骤102:针对每个图元:确定当前图元的类型。图元的类型包括:流程图元、数据传递图元、监察报错图元、计算图元、运算图元、自定义图元、初始化图元本文档来自技高网...

【技术保护点】
1.一种代码生成方法,其特征在于,包括:/n确定模型和当前语言;其中,所述模型中包括:流程图;所述流程图由若干图元构成;/n针对每个所述图元:/n确定当前图元的类型;/n根据与语言和图元的类型对应的解析规则,确定所述当前语言和所述当前图元的类型对应的当前解析规则;/n根据所述当前解析规则,将所述当前图元转换成所述当前语言的代码。/n

【技术特征摘要】
1.一种代码生成方法,其特征在于,包括:
确定模型和当前语言;其中,所述模型中包括:流程图;所述流程图由若干图元构成;
针对每个所述图元:
确定当前图元的类型;
根据与语言和图元的类型对应的解析规则,确定所述当前语言和所述当前图元的类型对应的当前解析规则;
根据所述当前解析规则,将所述当前图元转换成所述当前语言的代码。


2.如权利要求1所述的方法,其特征在于,
所述语言,包括:面向商业的通用语言COBOL和/或Java。


3.如权利要求1所述的方法,其特征在于,
与Java和流程图元对应的解析规则,包括:
转换后的字段的段名为m+所述流程图元的标识中的驼峰字符串;所述转换后的字段的参数为所述模型对应的程序的参数,返回值为空。


4.如权利要求1所述的方法,其特征在于,
与Java和数据传递图元对应的解析规则,包括:
确定在所述数据传递图元中是否存在条件语句,如果是,生成if语句,其中,所述条件语句之后的赋值语句位于所述if语句的语句体中;根据所述赋值语句的前、后数据,生成set语句。


5.如权利要求1所述的方法,其特征在于,
与Java和检查报错图元对应的解析规则,包括:
确定所述检查报错图元中是否存在判断语句,如果是,将所述判断语句转换成if语句;根据所述分析检查报错图元中的报错内容节点,确定报错码和报错信息;根据所述报错码和所述报错信息,生成try-catch语法块。


6.如权利要求1所述的方法,其特征在于,
与Java和计算图元对应的解析规则,包括:
获取所述计算图元的若干变量;生成与各个所述变量对应的set语句。


7.如权利要求1所述的方法,其特征在于,
与Java和运算图元对应的解析规则,包括:
确定所述运算图元中的若干变量;根据所述变量及其对应的操作符,将所述运算图元转换成Java代码。


8.如权利要求1所述的方法,其特征在于,
与Java和初始化图元对应的解析规则,包括:
提取所述初始化图元中的数据列表;对所述数据列表中的数据赋初始值。
<...

【专利技术属性】
技术研发人员:陈军王旻锐张倩
申请(专利权)人:中国建设银行股份有限公司建信金融科技有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1