- 梳理第二章的内容,写一篇理解与总结。
-
<句子>::=<主语>|<谓语>
<主语>::=<代词>|<名词>
<代词>::=我|你|他|它
<名词>::=教师|大学生|.....
<谓语>::=<动词>|<直接宾语>
<动词>::=是|学习.....
<直接宾语>::=<代词>|<名词>
-
例子G(S):S-->01 | 0S1
0S1-->0011一步到位,换掉左边一个非终结符变成右边终极符形式,叫做直接推导,也称作一步推导
最左推导:如果在推导过程中每次都优先换掉最左边的非终结符,就是最左推导啦
最右推导:就是最左反过来,每次都先换最右边的非终结符。
举个例子,有文法: 找 i+i
G(E):
E=> E + T | T
T=>T * F | F
F=>(E)| i
最左:E --> E+T--->T+T--->F+T--->i+T -->i+F -->i+i
最右:E -->E+T -->E+F -->E+i -->T+i -->F+i -->i+i
4)分析树
分析树,又称推导树,是推导过程的图示化方法,是一棵有序有向树,因此具有树的性质。
还是上面的例子,找 i*i+i
最左推导:E=>E+T=>E+F=>E+i=>T+i=>T*F+i=>T*i+i=>F*i+i=>i*i+i
最右推导:E=>E+T=>T+T=>T*F+T=>F*F+T=>i*F+T=>i*i+T=>i*i+F=>i*i+i
- 这个表不会
2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)
整数n n-->0|1|2|3|……|8|9
标识符i i->a|b|c|……|y|z|A|B|C|……|Y|Z (<字母>{<字母>|<数字>} )
表达式e ::= [+|-] <项> {<加减运算符><项>}
条件语句 ::= if <条件> then <语句>
赋值语句 ::= <id> :=<表达式>
复合语句 :: = begin<语句>{;<语句>} end
函数 ::= =<主函数>
程序 ::=<分程序>::=[<常量说明部分>][<变量说明部分>][<过程说明部分>]<语句>
浙公网安备 33010602011771号