首页 理论教育 结构化文本的表示方法

结构化文本的表示方法

时间:2023-06-27 理论教育 版权反馈
【摘要】:结构化文本编程语言具有下列特点:1)编程语言采用高度压缩化的表达形式,因此,程序紧凑,结构清楚。6)结构化编程语言中的基本元素是表达式。表2-10 结构化文本编程语言的操作符①适用于这些操作符的操作数也同样适用于相应标准函数的输入。表达式求值时注意下列事项:1)结构化文本编程语言中,表达式的执行操作有先后之分。

结构化文本的表示方法

结构化文本编程语言是高层编程语言,派生于PASCAL编程语言。它不采用低层的面向机器的操作符,而是用高度压缩的方式提供大量抽象语句来描述复杂控制系统的功能。

结构化文本编程语言具有下列特点:

1)编程语言采用高度压缩化的表达形式,因此,程序紧凑,结构清楚。

2)强有力的控制命令流的结构,例如选择语句、迭代循环语句等控制命令的执行。

3)程序结构清晰,便于编程人员和操作人员的思想沟通。

4)采用高级程序设计语言,可完成较复杂的控制运算,例如递推运算等。

5)执行效率较低。源程序要编译为机器语言才能执行,因此,编译时间长,执行速度慢。

6)对编程人员的技能要求较高。编程人员需要有一定的高级编程语言知识和编程技巧。

1.结构化文本的程序结构

结构化文本编程语言的程序由语句组成。语句由表达式和关键字等组成。表达式是操作符和操作数的结合。图2-2是结构化文本编程语言的程序结构。

978-7-111-59695-0-Chapter02-21.jpg

图2-2 结构化文本编程语言的程序结构

结构化编程语言编写的程序是结构化的,它具有下列特点:

1)在结构化编程语言中,没有跳转语句。它通过条件语句实现程序的分支。

2)结构化编程语言中的语句用分号“;”分隔,一个语句结束用一个分号。因此,一个结构化编程语言的语句可以分成几行编写,也可将几个语句编写在同一行,只需在语句结束时用分号分隔即可。分号表示一个语句的结束,换行表示在语句中的一个空格。

3)结构化编程语言的语句可以注释,注释的方法见第1章。

4)一个语句中可有多个注释,IEC 61131-3第三版规定注释符号可以嵌套,即能用(*(*注释内容*)*)。

5)注释可以设置在语句的任何空格位置,其内容部分也可包含空格。

6)结构化编程语言中的基本元素是表达式。

2.结构化文本编程语言的表达式

结构化文本编程语言的表达式由操作符和操作数组成。表达式用于生成处理语句所需的数值。它是一个结构,是由若干变量和/或函数调用的组合来生成数值的各类语句的一部分。

一个操作符可以是一个文本、一个枚举值、一个变量、函数调用的结果、方法调用的结果、功能块实例调用的结果或其他表达式。

结构化文本编程语言的操作符见表2-10。

2-10 结构化文本编程语言的操作符

978-7-111-59695-0-Chapter02-22.jpg

①适用于这些操作符的操作数也同样适用于相应标准函数的输入。

②表达式A**B的求值结果与函数EXPT(A,B)的求值结果相同。

表达式求值时注意下列事项:(www.xing528.com)

1)结构化文本编程语言中,表达式的执行操作有先后之分。优先级高的操作符对应的操作先被执行,优先级低的操作符对应的操作后被执行。操作符的优先级见表2-10。

例2-7】优先级高的操作符对应的操作先被执行。

表达式5*(3+2)-LN(3)中,先执行3+2,然后执行LN(3),接着是5*(3+2)和-LN(3)的操作。示例中,圆括号内+操作符对应的3+2最先进行,其次是函数求值,即计算LN(3),随后,才进行*操作符对应的乘操作和-操作符对应的减操作。

2)对具有相同优先级的多个操作符,根据表达式从左到右的次序执行操作。

例2-8】表达式从左到右的次序执行操作。

表达式60 MOD 24 MOD 10的求值过程中,两个模除具有相同的优先级,因此,先进行60MOD24的运算,结果是12,再进行12 MOD 10的求值,结果为2。如果要先进行后一个模除运算,则表达式应改写为:60 MOD(24 MOD 10),即后一个模除结果为4,而最终模除结果为0。

3)当一个操作符具有多个操作数时,根据从左到右的次序执行操作。

例2-9】多个操作数时,从左到右的次序进行操作。

表达式SIN(A)*COS(B)中,*操作符两边的操作是先计算SIN(A),再计算COS(B),最后计算两者之积。

4)多重圆括号的表达式中,求值从最内层的圆括号开始,并根据上述原则对圆括号内的表达式求值,然后,逐层向外,直到获得最后结果。利用圆括号可使运算次序改变,同时,它使程序的可读性增强。

例2-10】多重圆括号的表达式操作。

多重圆括号的表达式5*(1+3*(7+6)-8)计算时,先计算最内层的7+6,结果13与3相乘后得39,再计算1+39-8得32,最后乘以5得160。

5)对布尔表达式的求值只需要求值到可决定最终结果的程度,这种求值方法可简化程序的执行。

例2-11】布尔表达式的求值。

如果A>B,则表达式(A>B)OR(C<D)的求值只需计算得(A>B)即可确定结果为1;表达式(A<B)&(C<D)的求值也只需计算得(A>B)即可确定结果为0。

6)函数和方法调用时采用函数和方法名,然后是括号列出的参数列表,函数和方法调用作为表达式的元素。函数调用与某些操作符操作具有相同求值结果。但需注意,如表2-10所示,符号和函数名标识符的操作优先级不同。

例2-12】函数调用。

INSERT(IN1:='ABC',IN2:='XYZ',P:=2)是调用函数INSERT的表达式。

SIN(A)*COS(B)是调用SIN和COS函数的表达式。

例2-13】不同操作次序。

表达式3+5+ADD(2,4)先调用ADD函数进行2+4的操作,然后进行3+5及+6的操作。而表达式3+5+2+4先进行3+5,然后进行运算结果+2及+4的操作。

7)当表达式中的操作符可表示为过载函数,转换操作符和结果应遵循下列规则。

在操作符执行时的条件应处理为出错:

①企图除以零。

②操作符用于操作的是不正确的数据类型。

③数值求值结果超出它的数据类型的值的允许范围。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈