作业四——文法与语言总结与梳理
1.梳理第二章的内容,对此篇章有所总结。
语法是指一组规则,用它可以形成和产生一个合适的程序,目前广泛使用的手段是上下文无关文法,即用上下文无关文法作为程序设计语言语法的描述工具。
使用文法作为工具,不仅为了严格地定义句子的结构,也是为了适当条数的规则的全部句子描述出来,可以说文法是以有穷的集合刻画无穷的集合的一个工具。
0型文法定义:
0型文法(PSG): α∈(VN∪VT)* ,且至少含一个VN
β∈(VN∪VT)*
1型文法:
对任一产生式α→β,都有|β|>=|α|, 仅仅 S→ε除外
产生式的形式描述:α1Aα2→α1βα2
(其中,α1、α2、β∈(VN∪VT)*,β≠ε,A∈VN)
即:A只有出现在α1α2的上下文中,才允许用β替换。
产生的语言称“上下文有关语言”但S不能出现在产生式的右部。
2型文法:对任一产生式α→β,都有α∈VN,β∈(VN∪VT)*
产生式的形式描述:A→β(A∈VN)
即β取代A时,与A所处的上下文无关。
产生的语言称“上下文无关语言”
2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)
整数:n→1|2|3|4|5|6|7|8|9|
标识符:i→<字母> <字母>|<数字>
表达式:e→ [+|-]<项>{<加减运算符><项>}
条件语句:<条件语句>→ if <条件> then<执行语句>
赋值语句:<赋值语句>→ <标识符>:=<表达式>
复合语句:<复合语句> → begin<语句>{;<语句>}end
函数:<函数>→<主函数><其他函数>|<主函数>
程序:不会做(查无资料)
浙公网安备 33010602011771号