文法和语文总结与梳理--作业4

1. 梳理第二章的内容,写一篇理解与总结。

 答:第二章节主要讲述了文法和语言,文法是有一定的规则的,而这些有规则的文法又按照一定的规则编译组合成语言,文法描述的语言是该文法一切句子的集合;

   根据文法和语言的形式定义,将文法G定义为四元组( Vn, Vt, P, S);

   Vn非终结符(或语法实体,或变量)集,Vt终结符集,P为规则的集合,且至少包含一个非终结符,S是识别符或开始符,它是一个非终结符;

   Vn,Vt,P是非空有穷集,Vn和Vt不包含公共的元素;

   文法有0型文法(短语文法)、1型文法(上下文有关文法)、2型文法(上下文无关文法)、3型文法(正规文法)这四种类型;

   本章还学习了语法树相关的知识,对于文法中的某些句子可以用两颗不同的语法树来表示的句子,我们称之为“二义性文法”;

   语法树中有几个重要的概念:句柄、简单短语、短语、句子、句型、语言;

   在推导的过程中若从左到右进行推导则称之为“最左推导”,若从右到左推导则称之为“最右推导”,又叫做“规范推导”;

   以上就是第二章节的大概内容,详细的定义建议翻查书籍或者百度都可以查找到,在此处就不啰嗦了;

2. 尝试写出PL/0 语言的文法。

整数n    n - > 0 | 1 | 2 | 3 | ... | 8 | 9

标识符i       i - > a | b | c | ... | x | y | z | A | B | C | ... | X | Y | Z

表达式e     :: = [ + | - ] < 项 > { < 加减运算符 > < 项 > }

条件语句   :: = if < 条件 > then < 语句 >

赋值语句   :: = < id > : = < 表达式 >

复合语句   :: = begin < 语句 > { ; < 语句 > } end

函数     < 函数 > - > < 主函数 > < 其他函数 > | < 主函数 >

程序     :: = < 分程序 > :: = [ < 常量说明部分 > ] [ < 变量说明部分 > ] [ < 过程说明部分 > ] < 语句 >

...

原文地址:https://www.cnblogs.com/chenhaowen-shuaishuaide/p/11577452.html