The invention discloses a method for optimizing and compiling a selection statement. In the semantic analysis phase, according to the IEC61131 3 ST (structured text language) CASE (select) statements are recompiled when the various branches of the CASE statement to determine evaluation expression for a single constant mode when using direct jump table to form a sequence of instructions; when the CASE branch evaluation expression for multiple constants or constant interval using the expression, short-circuit and jump table combination form a sequence of instructions. The method of the invention improves the efficiency of the post instruction execution of the selected statement in the ST language.
【技术实现步骤摘要】
一种选择语句优化编译方法
本专利技术属于编译器处理领域,具体涉及一种IEC61131-3结构化文本编程语言选择语句编译优化的方法。
技术介绍
在工业控制领域中,IEC61131-3是通用的国际标准,该标准定义了结构化文本ST的语法和文法,通常将ST语言翻译为二进制中间指令,然后解释执行。在ST语言中,CASE选择语句是使用频率较高的语句,ST语言定义的CASE语句文法为:CASEexpressionOFcase_value1:statementlist1case_value2:statementlist2case_valueN:statementlist2ELSEstatementlistN+1ENDCASE;例如:CASEVarOF1:statementlist1;(*Var=1执行语句1,*)2,3:statementlist2;(*Var=2或3执行语句2*)10..20:statementlist3;(*10<=Var<=20执行语句3*)25,30..40:statementlist4;(*Var=25或30<=Var<=40执行语句5*)ELSEstatementlistN+1;(*上述分支条件不满足,执行该语句*)ENDCASE;每个case分支的求值表达式可以是单个常量,可以是通过逗号,并列的多个常量,或通过..表示的范围。这种文法定义和PASCAL、C语言的定义存在较大不同,不能直接使用基于跳转表、查找表的翻译方法。通常的方法是转换为IF-ELSEIF-ELSE的等价语句,然后进行翻译。由于工业实时控制领域,对指令 ...
【技术保护点】
一种选择语句优化编译方法,其特征在于,对于基于IEC61131‑3标准的ST结构化文本语言的CASE选择语句进行编译,根据CASE选择语句的各个分支的求值表达式类型,采用如下对应的优化翻译模式:当各个分支求值表达式都是单个常量时,采用直接跳转表翻译模式;当至少存在1个分支求值表达式是多个常量或常量区间时,采用短路求值和跳转表混合的翻译模式。
【技术特征摘要】
1.一种选择语句优化编译方法,其特征在于,对于基于IEC61131-3标准的ST结构化文本语言的CASE选择语句进行编译,根据CASE选择语句的各个分支的求值表达式类型,采用如下对应的优化翻译模式:当各个分支求值表达式都是单个常量时,采用直接跳转表翻译模式;当至少存在1个分支求值表达式是多个常量或常量区间时,采用短路求值和跳转表混合的翻译模式。2.如权利要求1所述的一种选择语句优化编译方法,其特征在于,当选择语句的各个分支求值表达式都是单个常量值时,直接跳转表翻译模式的步骤为:a)在翻译每个分支前,记录当前分支的指令的行号;b)记录当前分支与分支标号的对应关系;c)在一遍扫描过程中,形成各个分支的执行指令;d)扫描完毕后,将b)步骤中得到的分支与分支标号的对应关系生成包含有跳转指令的跳转表,并将跳转指令插入到执行指令前面。3.如权利要求1所述的一种选择语句优化编译方法,其特征在于,当存在1个分支求值表达式是多个常量或常量区间时,将该分支的求值表达式...
【专利技术属性】
技术研发人员:张磊,陈宏君,周磊,谭良良,刘克金,文继锋,徐卫峰,吴波,
申请(专利权)人:南京南瑞继保电气有限公司,南京南瑞继保工程技术有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。