作业四——文法与语言总结与梳理

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

函数:<函数>→<主函数><其他函数>|<主函数>

程序:不会做(查无资料)

posted @ 2019-09-27 19:04  WEJACKSI  阅读(146)  评论(0)    收藏  举报