预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)国家知识产权局(12)发明专利申请(10)申请公布号CN114879964A(43)申请公布日2022.08.09(21)申请号202210324919.0(22)申请日2022.03.30(71)申请人杭州海康威视数字技术股份有限公司地址310051浙江省杭州市滨江区阡陌路555号(72)发明人桂心哲孟泽民冷明鑫张冰逸(74)专利代理机构北京柏杉松知识产权代理事务所(普通合伙)11413专利代理师孙翠贤孟维娜(51)Int.Cl.G06F8/41(2018.01)权利要求书2页说明书14页附图3页(54)发明名称代码生成方法及装置(57)摘要本发明实施例提供了代码生成方法及装置,应用于数据处理技术领域。该方法包括:获取针对目标编程语言的模板代码;其中,目标编程语言为待生成代码所属的编程语言;对模板代码进行字符串识别,得到多个字符串以及每一字符串所属的字符串类别;基于多个字符串中每一字符串所属的字符串类别对应的转换策略,对模板代码中的各字符串进行代码转换,得到中间代码;调用目标解释器运行中间代码,以得到目标解释器输出的目标代码;其中,目标解释器为可执行中间代码所属编写语言的解释器。通过本方案,可以简化代码生成方案构建的复杂程度,提高代码生成的适用性。CN114879964ACN114879964A权利要求书1/2页1.一种代码生成方法,其特征在于,所述方法包括:获取针对目标编程语言的模板代码;其中,所述目标编程语言为待生成代码所属的编程语言;对所述模板代码进行字符串识别,得到多个字符串以及每一字符串所属的字符串类别;基于所述多个字符串中每一字符串所属的字符串类别对应的转换策略,对所述模板代码中的各字符串进行代码转换,得到中间代码;调用目标解释器运行所述中间代码,以得到所述目标解释器输出的目标代码;其中,所述目标解释器为可执行所述中间代码所属编写语言的解释器。2.根据权利要求1所述的方法,其特征在于,所述对所述模板代码进行字符串识别,得到多个字符串以及每一字符串所属的字符串类别,包括:识别所述模板代码中的至少一组起止标志符;其中,每一组起止标志符包括一对起始标志符和终止标志符;将位于每一组起止标志符之间的字符串,作为第一字符串,并基于预设的起止标志符与指定类别的对应关系,确定每一第一字符串所属的指定类别;其中,所述指定类别为各字符串类别中除普通类别之外的字符串类别,属于普通类别的字符串的编码语言与所需生成的代码的编码语言相同;将不属于任一组起止标志符之间的字符串,作为第二字符串,并确定每一第二字符串所属的字符串类别为所述普通类别。3.根据权利要求2所述的方法,其特征在于,所述识别所述模板代码中的至少一组起止标志符,包括:针对所述模板代码中的每一行代码文本,确定该行代码文本中是否包含至少一对起始标志符和终止标志符;若包含,则将所确定的该对起始标志符和终止标志符确定为一组起止标志符。4.根据权利要求3所述的方法,其特征在于,所述确定该行代码文本中是否包含至少一对起始标志符和终止标志符,包括:对该行代码文本进行针对起始标志符和终止标志符的搜索;若搜索到至少一对起始标志符和终止标志符,则确定该行代码文本中包含至少一对起始标志符和终止标志符,否则,确定该行代码文本中不包含至少一对起始标志符和终止标志符。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若所搜索出的起始标志符的数量与所搜索出的终止标志符的数量不匹配,则输出指示错误的信息。6.根据权利要求1所述的方法,其特征在于,所述基于所述多个字符串中每一字符串所属的字符串类别对应的转换策略,对所述模板代码中的各字符串进行代码转换,包括:针对所述多个字符串中每一字符串,采用如下方式对该字符串进行代码转换,包括:从所述模板代码中读取该字符串;若该字符串所属的字符串类别为语法类别,则按照与该字符串所属的语法类别对应的编写规则,将该字符串编写为命令代码,并将所述命令代码写入目标代码文件;其中,所述2CN114879964A权利要求书2/2页目标代码文件用于记录待生成的代码;若该字符串所属的字符串类别为变更类别,则将该字符串作为变量写入所述目标代码文件;若该字符串所属的字符串类别为普通类别,则将该字符串作为代码文本,写入所述目标代码文件。7.根据权利要求6所述的方法,其特征在于,所述按照与该字符串所属的语法类别对应的编写规则,将该字符串编写为命令代码,包括:若语法类别为与代码块标识无关的类别,则将该字符串作为命令代码;若语法类别为与代码块标识相关的类别,则按照与该字符串所属的语法类别对应的代码块标识操作,在该字符串的指定位置,执行针对代码块标识的指定操作,以得到命令代码;其中,所述指定位置包括该字符串之前或之后的位置,所述指定操作包括增加代码块标识或删除代码块标识。8.根据权利要求