编译原理网课笔记——第二章

第二章

2.1词法语法分析基本概念

字母表的乘积:笛卡尔积

字母表的n次幂:长度为n的符号串构成的集合(注意空串ε)

字母表的正闭包:长度整数的符号串构成的集合

字母表的克林闭包:正闭包+空==任意符号串(长度可为0)构成的闭包

串是字母表中符号的一个有穷序列

串上的运算

串的连接:xy(空串是连接运算的单位元,对任何串都有εs=sε=s)

x = yz y是x的前缀,z是x的后缀

串的幂运算:将n个串连接起来

2.2文法的定义

语法成分:<>,反之为语言基本符号

语言的基本符号:未用尖括号括起来的

文法的形式化定义:

G = (VT,VN,P,S)

VT:终结符集合(token),文法所定义的语言的基本符号

VN:非终结符(语法变量),用来表示语法成分的符号

VT∩VN = Φ VT与VN不相交

VT∪VN:文法符号集

第一个框列为字母表中排在前面的 第二个列字母表中排在后面的

P:产生式集合:产生式描述了将终结符和非终结符组成串的方法。

产生式的一般形式:a->b

  • a定义为b, a∈(VT∪VN)+,且至少包含VN中一个元素,称为左部;
  • b∈(VT∪VN)*,称为右部

S:开始符号,最大的文法成分

不引起歧义前提下可以只写产生式

产生式的简写:

2.3语言的定义

推导:(生成语言)自上向下

直接推导:用产生式的右部直接替换产生式的左部

总结:

名称

符号

含义

直接推导

=>

1步

推导

=>+

大于等于1步

广义推导

=>*

大于等于0步

归约:(识别语言)就是反向,自底向上

思考:

有了文法,如何判定某一词串是否为该语言的句子?

两种方法:

    • 句子的推导(从生成语言的角度)
    • 句子的归约(从识别语言的角度)

句型和句子

句型:属于文法符号集的闭包的符号串。

句子:仅包含终结符号的句型。

语言:

语言上的运算

2.4文法的分类

Chomsky文法分类体系

  • 0型文法

  • 1型文法
    • 上下文有关文法不包含空产生式。

  • 2型文法

  • 3型文法

四种文法之间的关系:

2.5CFG的分析树

基本定义:

分析树是推导的图形化表示。

二义性文法:一个文法可以为某个句子生成多棵分析树。

满足,肯定没有二义性。

不满足,也未必就是有二义性d 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值