1. 梳理第二章的内容,写一篇理解与总结。
本章介绍文法和语言胡概念,重点讨论上下文无关文法及其句型分析中的有关问题。
文法有四种类型:0型语言,上下文有关语言,上下文无关语言和正规语言。
且文法也具有二义性,就是一种文法,可以用两种以上的语法树来表示,则称这个文法有二义性。
推导方式有最左和最右推导,最右推导则是规范推导。根据文法推导出来的句子,可以用语法树更直观的表达出来。
还有一个句型分析,分为短语,直接短语,句柄。
总结:学完了第二章,自己大概的了解了文法和语言,初步的学到了一些知识。但是并没有深刻的去学习,对于一些概念也是模模糊糊,只会简单的推导和画出语法树。
句型分析半知半解,对于文法的四种类型也没有完全吃透,所以总的来说,对于文法和语言,自己也就是初步的了解和认识,以及会运用一些知识去解决问题。
希望自己能够掌握这些知识点。
2. 尝试写出PL/0 语言的文法。
整数n: ::=<n>{<n>}
标识符i:<标识符> ::= <字母>{<字母>|<数字>}
表达式e:<表达式> ::= [+|-]<项>{<加法运算符><项>}
条件语句:<条件语句> ::= if<条件>then<语句>[else<语句>]
赋值语句:<赋值语句> ::= <标识符>:=<表达式>
复合语句:<复合语句> ::= begin<语句>{;<语句>}end
函数:<函数定义>::=<类型说明><函数名><复合语句>
程序:<程序> ::= <分程序>.
...