正在加载图片...
逆波兰表示的扩充 。逆波兰表示还可用于表示其它的语法结构。此时,运算符不再限于 算术、关系和逻辑运算符,每个运算符的操作对象也可以不止两 个。例如,赋值语句x:=a+b*c可按后缀式写为xabc*+:=。 ·为了用后缀式表示一些控制语句,我们假定将后缀式的各符号存 放在一个一维数组POST[]中.还需引入一些转移操作符: ·pBR一无条件转至POST[p](从POST[p]继续执行); ·e'pBZ一e'是e的后缀表示,当e'之值为零时,转向POST[p]; ● e1'e2'pBL-e1'和e2'分别是e1和e2的后缀表示,当e1'<e2 时,转向POST[p]: ● 类似地,我们还可以定义BN(非零转)、BP(正号转)、BM(负号 转)等等。于是,条件语句IF e THEN S1 ELSE S2可写成 e'p BZ S'p2 BR S2 其中,p表示S2在数组POST中的起始位置;P2表示位于S2之 后那个符号的位置。逆波兰表示的扩充 • 逆波兰表示还可用于表示其它的语法结构。此时,运算符不再限于 算术、关系和逻辑运算符,每个运算符的操作对象也可以不止两 个。例如,赋值语句x:=a+b*c可按后缀式写为x abc*+:=。 • 为了用后缀式表示一些控制语句,我们假定将后缀式的各符号存 放在一个一维数组POST[n]中.还需引入一些转移操作符: • p BR—无条件转至POST[p](从POST[p] 继续执行); • e’ p BZ—e’是e的后缀表示,当e’之值为零时,转向POST[p]; • e1’ e2’ p BL—e1’和e2’分别是e1和e2的后缀表示,当 e1’<e2’ 时,转向POST[p]; • 类似地,我们还可以定义BN(非零转)、BP(正号转)、BM(负号 转)等等。于是,条件语句IF e THEN S1 ELSE S2 可写成 e’ p1 BZ S1 ’ p2 BR S2 ‘ 其中, p1表示S2 ‘在数组POST中的起始位置; p2表示位于S2 ‘之 后那个符号的位置
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有