[发明专利]指令表IL程序到C语言程序的编译方法无效
申请号: | 201110367845.0 | 申请日: | 2011-11-18 |
公开(公告)号: | CN103123590A | 公开(公告)日: | 2013-05-29 |
发明(设计)人: | 高丽;李忠琪;杨东升;刘荫忠 | 申请(专利权)人: | 中国科学院沈阳计算技术研究所有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 沈阳科苑专利商标代理有限公司 21002 | 代理人: | 许宗富 |
地址: | 110168 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 il 程序 语言 编译 方法 | ||
技术领域
本发明涉及可编程逻辑控制器的编译技术领域,尤其是涉及PLC的编程语言指令表IL程序到C语言程序的编译方法。
背景技术
软PLC技术在工业控制中应用领域极其广泛,然而各生产厂家或研究单位都是针对某一特定系统环境开发PLC程序的编译执行技术。这种针对单一运行环境的编译技术缺乏通用性,兼容性,不能移植到其他的计算环境中使用。因此一种可移植性强,兼容性好的编译技术成为软PLC技术发展的迫切需求。符合IEC61131-3标准的指令表是软PLC编程中常用的文本化编程语言,C语言是多种计算机系统所采用的编程语言,具备可移植性强和兼容性好的特点,符合软PLC编译的目标代码要求,且C语言程序在各种计算机系统下能被快速编译执行。因此从指令表IL程序到C语言程序的编译技术具备很强的实用性,可行性和研究意义。
发明内容
针对上述的问题,本发明提出一种指令表IL程序到C语言程序的编译方法,主要解决了编译过程中对IL语言的逻辑组成解析、中间语法结构的建立、生成目标语言C语言的过程以及辅助函数和数据结构,该方法实现了PLC程序到计算机高级语言的一种快速高效编译方法,又使得目标程序具有广泛实用性、通用性,可用于多种计算机系统。
为实现本发明的目的,本发明采取以下技术方案:
该指令表IL程序到C语言程序的编译方法,其特征在于:包括步骤如下:
采用词法分析程序扫描指令表程序将识别和归类好的词汇送给语法分析,语法分析采用yacc对符合指令表逻辑的程序段和语句进行语法归约,将语法归约结果建立中间存储结构语法树,该结构根据指令表逻辑组成和C语言逻辑组成的逻辑一致性分析得出的语义映射,结合功能和功能块的辅助功能函数模块和定义数据结构的辅助文件生成C语言程序。
所述语法分析是按照指令表逻辑从单词到语句,从语句到程序段进行递归和约束,将约束结果的逻辑单元存储到中间结构语法树。
所述语义映射是通过指令表和C语言逻辑的语义一致性关系建立一个翻译模块,该模块将指令表和C语言逻辑单元中具备同一逻辑意义的关键字、变量、常量对应成C语言的关键字、变量、常量。
所述辅助功能函数模块是以指令表中具有固定逻辑功能的功能和功能块按照C语言编程方法实现具备相同功能的可直接调用的C语言功能函数。
所述定义数据结构的辅助文件是以C语言中定义数据结构的方法建立符合功能函数调用所需的参数传递的结构体。
本发明的技术效果和优点:
1.本发明方法完成指令表IL和C语言的语义映射关系,在逻辑上使目标语言与源语言实现完全一致。
2.本发明方法建立的语法树结构,使语法规约和语义解析可行,实现了编译的量产化。
3.本发明方法功能和功能块的辅助函数模块化,减少实际编译过程中需要编译转换的源程序数量,降低了编译复杂度缩短了编译时间,使整个编译过程的速度提高。
4.本发明方法最终生成的C程序具备可移植性强、兼容性好等特点,适用于多种计算机系统,使后期编译执行速度快,便于实现数控系统中对高速加工的需求。
5.本发明方法可将最终C语言文件事先编制成可供计算的机器代码,具有资源占用少的特点,符合工业加工控制中高效低耗性能。
附图说明
图1为指令表IL程序到C语言程序的编译过程图。
图2为指令表IL程序的逻辑解析图。
图3为图1中语法树结构图。
具体实施方式
下面结合图示本发明的方案进一步详细描述:
参见图1,指令表IL程序到C语言程序的编译方法,其特征在于:包括步骤如下:
采用词法分析程序扫描指令表程序将识别和归类好的词汇送给语法分析,语法分析采用yacc对符合指令表逻辑的程序段和语句进行语法归约,将语法归约结果建立中间存储结构语法树,该结构根据指令表逻辑组成和C语言逻辑组成的逻辑一致性分析得出的语义映射,结合功能和功能块的辅助功能函数模块和定义数据结构的辅助文件生成C语言程序。
从读取用户编辑的指令表IL程序开始,经过词法分析、语法分析、语义分析、报错处理过程,结合辅助功能功能函数和数据结构定义文件,一段完整无错误的指令表程序被编译成完整的C程序文件。
把指令表程序划分为几个结构块,对每一个结构块又进行细分,直到细分到单个词组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院沈阳计算技术研究所有限公司,未经中国科学院沈阳计算技术研究所有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110367845.0/2.html,转载请声明来源钻瓜专利网。