论文部分内容阅读
随着国际电工组织正式公布IEC61131-3标准,国内外各大自动化厂商都相继推出了基于此标准的工业自动化领域的组态软件,并得到了广泛的应用。该标准统一了工业自动化控制系统的编程语言规范,旨在便于各厂家之间的程序移植及重复使用,降低用户的使用难度和使用成本。指令表语言是该标准中规定的5种编程语言之一,是最基本的一种编程语言,其他的编程语言都可较方便地转化为IL语言。组态软件是DCS、PLC等控制系统的上位机软件,在整个控制系统中占据极其重要的地位。编译器作为组态软件的核心模块,其性能的好坏对于整个控制系统的运行效率有很大的影响。本文先简述了IEC61131-3标准的内容和IL语言的语法规则,然后介绍了编译原理的相关理论和编译系统的设计方案。通过编程语言和组态软件对编译器的需求分析,规划了本编译器的整体体系结构,在此基础上提出了编译器的实现方案。根据总体设计方案,将整个编译器分为不同的模块来设计和实现。首先,词法语法分析中借助了FLEX和BISON辅助生成工具,根据指令表语言的语法编写了相关的规则文件,并设计了词法语法分析的整体流程以及关键步骤的具体实现流程。其次,根据语义分析的结果,并结合编译器前端和后端的特性设计了相应的中间代码结构,该中间代码与目标平台的特性无关,方便进行后续的优化。第三,设计了支持整个编译器运行的辅助支撑模块,主要包括运行时环境和错误检测及处理两部分。最后,选择了一个ARM控制器作为目标平台,进行了指令选择和指令编码,完成了目标代码生成的工作。本论文与实际开发项目相关联,结合自己之前的一部分工作,在此基础上进行了一定的优化,最终实现了一个完整的编译器。