论文部分内容阅读
工业控制系统编程语言正朝着不断标准化、开放化的方向迈进,国际电工协会(International Electro-technical Commission,简称IEC)于1993年推出了IEC61131-3标准,用于规范工业控制器的编程语言。但是控制系统编程语言编译器的标准化进程却远远落后于语言本身。有些控制系统语言编译器并不符合IEC国际标准规范,有些只支持某一种IEC标准编辑语言,少数可以支持多标准语言的编译器也存在结构复杂、代码冗余度高的问题。针对现有控制系统语言编译器存在的上述问题,本文设计了RSMI编译器——精简的(Reduced)、符合IEC标准的(Standard)、多语言支持的(Multi-language supported)、应用于工业控制系统编程领域的(Industrial control system programming field)编译器,并对进行部分模块进行了实现。本文首先分析了现有编译器的实现方法和组成结构,通过复用语言无关性模块的方法实现编译方法的初步优化,通过统一处理IEC标准通用元素的方法实现编译方法的进一步优化,得到RSMI编译器结构框架。然后,本文定义了词法分析模块的功能、接口、符号集和词法表达方式;分析了语法分析的两种方法,选用自底向上方法实现语法语义分析;定义了中间代码的生成和格式;设计了符号表结构、运行时刻支持环境;定义了错误类型、错误的审查报告方法;通过LEX (Lexical Analyzer Generator)和YACC (Yet Another Compiler-Compiler)工具,实现了词法分析模块和语法语义分析模块。最后,本文比较了不同编译器的性能。验证了RSMI编译器具有结构紧凑、实现简单、代码冗余度低的优点。