System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及编程翻译,尤其涉及一种混合语言编程翻译方法、装置、电子设备、存储介质及产品。
技术介绍
1、iec 61131-3标准支持多种编程语言,包括结构化文本(st)、梯形图(ld)、功能块图(fbd)、顺序功能图(sfc)和指令表(il)。这些语言各有特点,适用于不同的编程场景和人员需求。现代的控制系统编程软件通常都支持iec 61131-3标准,并提供了多语言混合编程的功能。开发者可以在同一个项目中创建不同语言的程序模块,并通过数据接口、函数调用等方式将它们连接起来,形成一个完整的控制系统。
2、现有的多语言混合编程通常是将iec语言转换为一种中间语言(如c语言),通过中间语言接口标准来实现各语言之间的混合调用。但是每一种iec语言均需开发出对中间语言的转换代码,重复代码高,且可能出现各语言实现不一致问题导致不同语言计算结果存在差异,从而影响混合语言的编程翻译效率和准确度。
技术实现思路
1、基于上述需求,本申请提出一种混合语言编程翻译方法、装置、电子设备、存储介质及产品,能够提高混合语言的编程翻译效率和准确度。
2、为实现上述目的,本申请提出如下技术方案:
3、根据本申请实施例的第一方面,提供了一种混合语言编程翻译方法,包括:
4、对待翻译编程语句进行解析识别,得到所述待翻译编程语句对应的iec语言通用结构;其中,所述待翻译编程语句由至少一种iec语言构成,所述通用结构包括:词法结构和符号结构;
5、基于所述iec
6、基于所述iec语言通用结构与目标语言之间的翻译规则,将所述待翻译编程语句对应的抽象语法树翻译为所述目标语言对应的目标翻译编程语句。
7、可选的,对待翻译编程语句进行解析识别,得到所述待翻译编程语句对应的iec语言通用结构,包括:
8、对待翻译编程语句进行词法识别,得到所述待翻译编程语句中包含的词法结构;
9、基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号结构;
10、将所述待翻译编程语句中包含的词法结构和所述待翻译编程语句中包含的符号结构作为所述待翻译编程语句对应的iec语言通用结构。
11、可选的,基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号结构,包括:
12、基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号以及所述符号对应的类型信息;
13、基于iec语言的符号标准定义和所述符号对应的类型信息,确定所述符号对应的符号定义;其中,所述iec语言的符号标准定义中包括不同类型信息对应的符号标准定义;
14、将由所述待翻译编程语句中包含的符号以及所述符号对应的符号定义构成的符号表作为所述待翻译编程语句对应的符号结构。
15、可选的,基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号以及所述符号对应的类型信息,包括:
16、在从所述待翻译编程语句的词法结构中识别出所述待翻译编程语句中包含的变量符号的情况下,对所述变量符号进行变量符号识别,确定所述变量符号对应的类型信息;其中,所述变量符号识别包括:变量符号类型识别和变量符号作用域识别。
17、可选的,基于所述iec语言通用结构,构建所述待翻译编程语句对应的抽象语法树,包括:
18、按照所述iec语言通用结构中的词法结构,构建所述待翻译编程语句对应的抽象语法树,其中,所述抽象语法树中包含有对所述iec语言通用结构中的符号结构中符号的引用。
19、可选的,基于所述iec语言通用结构与目标语言之间的翻译规则,将所述待翻译编程语句对应的抽象语法树翻译为所述目标语言对应的目标翻译编程语句,包括:
20、基于所述iec语言通用结构与目标语言之间的翻译规则,将所述待翻译编程语句对应的抽象语法树中的词法结构和符号结构翻译为目标语言,并按照抽象语法树,将翻译后的词法结构和符号结构组合成所述目标语言对应的目标翻译编程语句。
21、根据本申请实施例的第二方面,提供了一种混合语言编程翻译装置,包括:
22、解析识别模块,用于对待翻译编程语句进行解析识别,得到所述待翻译编程语句对应的iec语言通用结构;其中,所述待翻译编程语句由至少一种iec语言构成,所述通用结构包括:词法结构和符号结构;
23、语法树构建模块,用于基于所述iec语言通用结构,构建所述待翻译编程语句对应的抽象语法树;其中,所述抽象语法树为iec语言的通用语法树结构;
24、语法树翻译模块,用于基于所述iec语言通用结构与目标语言之间的翻译规则,将所述待翻译编程语句对应的抽象语法树翻译为所述目标语言对应的目标翻译编程语句。
25、根据本申请实施例的第三方面,提供了一种电子设备,包括:存储器和处理器;
26、所述存储器与所述处理器连接,用于存储程序;
27、所述处理器,用于通过运行所述存储器中的程序,实现上述混合语言编程翻译方法。
28、根据本申请实施例的第四方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现上述混合语言编程翻译方法。
29、根据本申请实施例的第五方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器实现上述混合语言编程翻译方法。
30、本申请提出的混合语言编程翻译方法,对待翻译编程语句进行解析识别,得到待翻译编程语句对应的iec语言通用结构;其中,待翻译编程语句由至少一种iec语言构成,通用结构包括:词法结构和字符结构;基于iec语言通用结构,构建待翻译编程语句对应的抽象语法树;其中,抽象语法树为iec语言的通用语法树结构;基于iec语言通用结构与目标语言之间的翻译规则,将待翻译编程语句对应的抽象语法树翻译为目标语言对应的目标翻译编程语句。采用本申请的技术方案,各种iec语言共享iec语言通用结构,从而构建符合iec语言的通用语法树结构的抽象语法树,无需对每种iec语言均单独编写到中间语言的转换代码,减少了重复代码,提高了混合语言的编程翻译效率,并且,所有iec语言均是基于iec语言通用结构构建出的抽象语法树,提高了不同语言之间的一致性,进而提高了混合语言的编程翻译准确度。
本文档来自技高网...【技术保护点】
1.一种混合语言编程翻译方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,对待翻译编程语句进行解析识别,得到所述待翻译编程语句对应的IEC语言通用结构,包括:
3.根据权利要求2所述的方法,其特征在于,基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号结构,包括:
4.根据权利要求3所述的方法,其特征在于,基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号以及所述符号对应的类型信息,包括:
5.根据权利要求1所述的方法,其特征在于,基于所述IEC语言通用结构,构建所述待翻译编程语句对应的抽象语法树,包括:
6.根据权利要求1所述的方法,其特征在于,基于所述IEC语言通用结构与目标语言之间的翻译规则,将所述待翻译编程语句对应的抽象语法树翻译为所述目标语言对应的目标翻译编程语句,包括:
7.一种混合语言编程翻译装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括
9.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至6中任意一项所述的混合语言编程翻译方法。
10.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器实现如权利要求1至6中任意一项所述的混合语言编程翻译方法。
...【技术特征摘要】
1.一种混合语言编程翻译方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,对待翻译编程语句进行解析识别,得到所述待翻译编程语句对应的iec语言通用结构,包括:
3.根据权利要求2所述的方法,其特征在于,基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号结构,包括:
4.根据权利要求3所述的方法,其特征在于,基于所述待翻译编程语句中包含的词法结构,对所述待翻译编程语句进行符号识别,得到所述待翻译编程语句中包含的符号以及所述符号对应的类型信息,包括:
5.根据权利要求1所述的方法,其特征在于,基于所述iec语言通用结构,构建所述待翻译编程语句对应的抽象...
【专利技术属性】
技术研发人员:王思夏,解朝杰,杜柯昊,
申请(专利权)人:杭州和利时自动化有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。