第四次作业
1、文法是语言语法的描述工具,使用有限的规则将无限的语言描述出来.
字母表:有穷符号集合,也称为符号集。
字符串:由字母表中的符号组成的任何有穷序列称为符号串。
语言是文法所描述的所有橘子的集合,通俗点说吧,你看咱们平时说话不是都要遵从一定的语法规则吗,比如句子“主谓宾”这样的形式,文法就是用四元组要素。
语言是一个记号系统,完整的定义包括语法和语义两方面。
语法是一组说明语言的规则,文法是用来阐明这些语法规则的一个重要形式工具。
语义包括静态语义和动态语义,阐明语义要比语法困难的多。
文法G定义为四元组(VN ,VT ,P,S):
VN :非终结符集,通常用大写字母表示
VT : 终结符集,通常用小写字母表示
P :产生式集合(规则集合)
S :开始符号(识别符号)
文法的类型有:0型文法、1型或上下有关的文法、2型的或上下无关的文法、3型文法或正规文法。四种文法,从0型到3型,其规则和约定越来越多,限制条件也越来越多。
语法树,是针对上下文无关文法,用来表示一个句型的生成过程的一种描述手段。正常情况下一个文法只可能有一种语法树,就是最左推导和最右边推导的两颗语法树是一样的,不存在二义性。
2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)
整数n: <n> → 0|1|2…7|8|9
标识符i:i-><标识符>::=<字母>{<字母>|<数字>}
表达式e:e→<字母>{<字母>|<数字>}
条件语句:<条件语句>→if<条件>
then<语句>
赋值语句:<赋值语句>::=<id>:=<表达式>
复合语句: <复合语句>::=begin<语句>{;<语句>} end
函数:<函数>::=function <id>() :
程序:想不出来
...