编译原理期末复习—第二章文法和语法

编译原理期末知识点和习题复习,后续会持续更新。(欢迎各位大佬指正

文章目录

前言

一、形式语言基础

1、符号和符号串

2、符号串和符号串集的运算

二、文法和语言的形式定义

1.文法的引例

2.文法的形式定义

三、推导与句型分析

四、文法和语言的分类

1、0型文法

2、1型文法(上下文有关文法

3、2型文法(上下文无关文法

4、3型文法(正规文法

五、语法树与文法的二义性

1、推导与语法树

2、文法的二义性

六、课后习题



前言

主要是考察语言和文法的转换


一、形式语言基础

1、符号和符号串

(1)字母表:有穷非空符号(元素)集。用大写字母表示。

  • (2)符号:可以相互区别的记号(元素)。用小写字母或数字表示。

(3)符号串:由字母表中的符号组成的任何有穷序列称为该字母表上的符号串。简称为串、行。

(4)空串不含任何符号的串。用 ε 表示。

2、符号串和符号串集的运算

(1)长度:符号串中符号的个数。串β的长度记为|β |

例1|010 |3|00101|5

            特别地有|ε| 0  

(2)连接xy的连接,是把y的符号写在x的符号之后得到的符号串xy 。记为xy x·y

(3)串的方幂:x自身连接n次。记为x^n

   x^n xxx … xxxx^0x^n= x^(n-1)x = x x^(n-1) n0

例2设串xabc,则有:

             x0

             x1=abc

             x2=xx= abc abc

             x3= x2 x = x x2 = abc abc abc

             ……

             xn= xn1 x = x xn1 = abc abc …… abc abc

    (4)积:AB为两个符号串集合,其乘积A·Bx∈Ay∈B的所有符号串xy构成的集合。记为ABA·B

      AB={xy | x∈Ay∈B

例3A={abbc,B={accb,

         则积AB={abacabcbbcacbccb

         特别地有εAAε}=A

(5)集合的方幂:A为符号串集合,则串集合A的幂运算递归定义如下:  

     A^0={ε

      A^n AA ……AA A^(n1)A AA^(n1) n0

例4A={ab}则有

       A0=ε},A1A ={ab

       A2=AA =aaabbabb

       A3=AA2 =aaa,aab,aba,abb,baa,bab,bba,bbb

        ……

       An =AAn1 =aa … aa… … bb … bb

    (6)闭包:A为符号串集合,则串集合A的闭包表示为A*,定义为:

              A*A^0∪A^1∪…… ∪ A^k ∪ ……

       正闭包:串集合A的正闭包表示为A^定义为:

              A^A^1∪A^2∪…… ∪ A^k ∪ ……

        具有以下性质:

         A*A0∪A

         AAA*A*A

(7)形式语言:是一个字母表上按某种规则构成的所有符号串的集合。

Ø 字母表∑, ∑*包含由∑上符号构成的所有符号串
Ø ∑上每个 语言是∑* 的一个子集
Ø ∑上按某种规则构成的符号串称为 句子

                             

二、文法和语言的形式定义

1.文法的引例

非终结符号一系列需要定义的语法成分,即规则中用尖括号括起来的,由它们可推出其它句子成分。例如: <主语><谓语> 等。大写字母表示

终结符号若干基本符号,是组成句子的最基本符号。例如:张三学生。小写字母表示

产生式一组产生句子的规则:

P→α    P ::α

开始符号语言中的句子只能从它开始推导。

2.文法的形式定义

定义2.1】文法定义为四元组 G(VNVTPS )。其中:

       VN为非终结符号(或语法实体,或变量)集;

       VT为终结符号集; VN VT = ϕ,通常用V表示VN   VT,称为文法G的字母表;

        P为产生式或规则(αβα∷=β)的集合, 其中α∈V+,且 α 中至少要包含一个非终结符β∈V*

        S是识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。

   VNVTP是非空有穷集。

三、推导与句型分析

1、推导、句子和句型

定义2.2】给定文法G=VNVTPS),如果α→β是文法G的产生式(或规则),若有符号串νω满足 ν =γαδ, ω= γβδ, 其中γ ∈V*, δ ∈V* ,则称ν直接推导ω,记作 ν Þ ω, 也称ω直接归约ν

   【例1文法 G2S→0S1S→01

                 S =》0S1

                 0S1 =》00S11

                 00S11 =》000S111

                 000S111 =》00001111

定义2.3】若存在直接推导序列:

                           ν =》 ω1 =》 ω2 =》... =》 ωn= ω,(n>0)

   则称ν多步推导ω 记为ν ω 。

 定义2.4】若有ν  ων = ω 则记为ν ω

 定义2.5】G[S]是一个文法,若存在α,则称α是文法G[S]句型。若α仅由终结符组成,即Sα,α∈VT*,则称α是文法G[S]句子

2、不同类型的推导和句子分析

最左推导:在推导每一步过程中总是考虑对句型中最左的非终结符进行替换
最右推导(规范推导):在推导每一步过程中总是考虑对句型中最右的非终结符进行替换

规范句型:由规范推导推导出的句型。

3、语言的形式定义

定义2.6】文法G所描述的全部句子的集合称为语言,记为L(G 。即L(G)={ α | Sα其中S为文法的开始符号,且α∈VT*}

四、文法和语言的分类

1、0型文法

限制产生式α→βα∈ (VN∪VT)+ ,且至少含有一个非终结符,而β∈(VN∪VT) *

对应语言:0型语言

自动机:图灵机

2、1型文法(上下文有关文法

限制产生式 α→β |α|≤ |β|

对应语言:1型语言

自动机:线性界限自动机

3、2型文法(上下文无关文法

限制产生式为对任一产生式A→β,都有A∈VN β∈(VN∪VT)*

对应语言:二型语言

自动机:下推自动机

4、3型文法(正规文法

   − 右线性文法: A→aBA→a

   − 左线性文法: A→BaA→a

   其中,AB ∈VN a ∈VT

对应语言:3型语言

自动机:有穷自动机

五、语法树与文法的二义性

1、推导与语法树

 一个句型不一定只有一个语法树,也不一定只有唯一一个最左/最右推导

2、文法的二义性

若文法G中存在某个句子对应两棵不同的语法树,则称该文法具有二义性。
或者,若文法G中存在某个句子有两个不同的最左(右)推导,则称该文法具有二义性。

六、课后习题

 (1)

(2)

 (3)

(4)

 

(5)

(6)

(5)(6)题答案下期揭晓


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值