运算符语法和运算符优先级语法有什么区别?也要举例说明

时间:2019-04-06 19:50:53

标签: compiler-construction

运算符语法和运算符优先级语法有什么区别?也要举例说明。 我正在为考试做准备,但找不到。

2 个答案:

答案 0 :(得分:1)

在运算符语法中,右侧不为空,也没有两个连续的非终结符。运算符优先级语法是其运算后的优先级关系明确的运算符语法。

尽管您可能会在大学里就读,但如今弗洛伊德(Floyd)在1963年发表的论文似乎受到限制。但基本属性在Stefano Crespi-Reghizzi 1978年的论文Algebraic Properties of operator precedence languages的前两页中进行了总结。

答案 1 :(得分:0)

运算符语法:为定义数学运算符而生成的语法identifier被称为运算符语法,对语法有一些限制。

示例:E->E+E/E*E/id

其中; 运算符优先级语法是无上下文语法,它具有以下特性:没有任何产品的右侧有一个空的右侧(空产品)或两个相邻的非终端。 示例:

S->SAS/a
A->bSb/b 

尽管如此,我们可以将其转换为运算符语法:

S->SbSbS/SbS/a
A->bSb/b  

希望它会对您有所帮助。为了进一步学习,您可以查看此内容

https://www.geeksforgeeks.org/theory-computation-operator-grammar-precedence-parser/