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

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

(1)文法涉及的基本概念,以及自己不太熟悉的概念

L={A,B, … ,Z,a,b, … ,z}

D={0,1, … ,9}

LUD:全部字母和数字的集合

LD:由一个字母后跟一个数字组成的所有符号串的集合

L4:由4个字母组成的所有符号串在集合

L*:由字母组成的所有符号串(包括ε)的集合

D+:由一个或若干个数字组成的所有符号串的集合

L(LUD)*:以字母开头,后跟字母、数字组成的所有符号串的集合

 文法是描述语言的语法结构的形式规则(即语法规则)。就是指怎么由一堆符号组成一个有含义的句子的规则和协议。并且是一种上下文无关的文法。

文法例子:

上面定义英文句子的规则就可以说是一个上下文无关文法。其中,<句子>被称为开始符号,<主语><谓语><代词>之类的被称为非终结符号,He、gave之类的被称为终结符号

归纳起来,一个上下文无关文法G包括四个部分:终结符号,非终结符号,开始符号,产生式

更精确的定义:

(2)语法分析树与二义性

  •  最右推导,每个推导过程都是从最右边的非终结符号的替换开始
  •  最左推导,每个推导过程都是从最左边的非终结符号的替换开始

一个文法可以唯一确定一个语言,但是一个语言不一定唯一对应一个文法

用一种树形的图示来表示这个句型的推导过程,这棵树就被称为”语法分析树“,简称”语法树“。

列如:

 对于一个文法,如果它的某些句子对应两棵不同的语法树,这个文法就属于“二义性文法”。

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

整数n    <数字> ::= 0 | 1 | 2 | … | 8 | 9

标识符i   <标识符>::=<字母>{<字母>|<数字>}

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

条件语句   <条件语句>  ::= IF <条件> THEN <语句>

赋值语句   <赋值语句> -> <标识符> := <表达式>

复合语句   <复合语句> ::= BEGIN <语句> {;<语句>} END

函数  <函数定义> := <类型说明><函数名><复合语句>

程序   <程序> ::= <分程序>

...

猜你喜欢

转载自www.cnblogs.com/zhengjieting/p/11583681.html