[发明专利]多语言代码编译方法及编译器有效
申请号: | 201811153588.9 | 申请日: | 2018-09-29 |
公开(公告)号: | CN109254776B | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | 张建飞;王立松;冯庆枝 | 申请(专利权)人: | 深圳市雷赛控制技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 逯恒 |
地址: | 518000 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 语言 代码 编译 方法 编译器 | ||
本申请提供一种多语言代码编译方法及编译器,涉及语言编译技术领域。该编译方法包括:根据预设词法分析规则对源程序代码进行词法分析处理,生成词法分析结果,其中,所述源程序代码包括多种不同语言的源程序代码;根据预设语语义法分析规则对所述词法分析结果进行语法语义分析,生成语法语义分析结果;根据预设目标代码的生成规则对所述语法语义分析结果进行目标代码的分析,生成目标代码。该编译方法基于IEC61131‑3标准,将语言无关性模块进行整合,使得多语言编译器的结构得到很大简化,提升代码效率和减少代码的维护,并且在IEC61131‑3编程语言的基础上再增加BASIC语言的支持。
技术领域
本申请涉及语言编译技术领域,特别涉及一种多语言代码编译方法及编译器。
背景技术
IEC61131-3标准是有关可编程控制器的硬件、安装、试验、编程、通讯等方面的国际标准。其中IEC61131-3是PLC编程语言标准,详细的说明了五种编程语言,其中,包括梯形图(Ladder Diagram,LD)、顺序功能流程图(Sequential Function Chart,SFC)、功能区块图(Function Block Diagram,FBD)、三种图形化语言;还包括指令表(Instruction List,IL)、结构化文本(Structured Text,ST)两种文本化语言。而IEC61131-3标准则作为工控领域的软逻辑编程的行业标准,被广泛应用在各大PLC厂商。
现有的基于IEC61131-3标准语言的多语言编译器,较简化的编译器是通过增加语言转换器,将多种语言翻译成一种或者少数几种语言源程序,然后由一种或少数几种单语言编译器编译实现,虽然该编译器有所简化,但各功能模块仍有很多冗余,在提升代码效率方面和代码维护方面用户体验不是很好。
申请内容
本申请的目的在于,针对上述现有技术中的不足,提供一种多语言代码编译方法及编译器,提升代码效率和减少代码的维护,并且在IEC61131-3编程语言的基础上再增加BASIC语言的支持。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种多语言代码编译方法,所述方法包括:
根据预设词法分析规则对源程序代码进行词法分析处理,生成词法分析结果,其中,源程序代码包括多种不同语言的源程序代码;
根据预设语法语义分析规则对词法分析结果进行语法语义分析,生成语法语义分析结果;
根据预设目标代码的生成规则对语法语义分析结果进行目标代码的分析,生成目标代码。
进一步地,源程序代码包括下述至少2种源程序代码:
梯形图语言、顺序功能流程图语言、功能区块图语言、指令表语言、结构化文本语言及BASIC语言。
进一步地,根据预设词法分析规则对源程序代码进行词法分析处理,生成词法分析结果,包括:
将源程序代码编译所需的头文件代码添加至源程序代码,得到新的源程序代码;
根据预设词法分析规则对新的源程序代码进行词法分析处理并生成词法分析结果;其中,预设词法分析规则包括下述一种或多种组合:分界符类别、运算符类别、标识符类别、注释类别、常量类别或关键字类别规则。
进一步地,根据预设语法语义分析规则对词法分析结果进行语法语义分析,生成语法语义分析结果,包括:
采用变量模型对源程序代码的所述词法分析结果进行语法语义分析,生成变量模型的语法语义分析结果,其中,变量模型包括:单个变量和变量段的定义,变量段的定义包括输入变量段、输出变量段、局部变量段及全局变量段的定义;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市雷赛控制技术有限公司,未经深圳市雷赛控制技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811153588.9/2.html,转载请声明来源钻瓜专利网。