哈工大编译原理——课程第二课笔记

第二讲

2-1

字母表

是一个有穷符号集合

如二进制字母表:{0,1}

字母表的运算

两个表的乘积:{0,1}{a,b}={0a,0b,1a,1b}

字母表的n次幂:长度为n的符号串构成的集合

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

字母表的克林闭包:任意符号串(长度可以为零)构成的集合

串S

字母表的克林闭包的每一个元素都为字母表上的一个串

串的运算

连接运算

串的n次幂:s=ba 则s^0 =ε, s^2=baba

2-2

文法

image-20211103115209842

image-20211103115557981

符号约定

image-20211103115819966

image-20211103203338484

文法符号:终结符或者非终结符

文法符号串包括空串

ε既不是终结符也不是非终结符,但是可以作为终结符使用

2-3

直接推导

用产生式的右部替换产生式的左部

image-20211103204351840

归约

产生式的左部替换产生式的右部

归约是推导的逆过程

已知文法,如何判定某一词串是否是该语言的句子

句子的推导(派生):从生成语言的角度

句子的归约:从识别语言的角度

句型 α 和句子 w

image-20211103205044728

句型本身是一个文法符号串

语言 L(G)

image-20211103205341851

语言:所有的句子构成的集合,而不是句型

文法解决了无穷语言的有穷表达问题

语言是一类符号,比如标识符

image-20211103205945607

2-4 文法类型

0型文法 PSG

image-20211103210137346

1型文法 CSG

image-20211103210721733

2型文法 CFG

左部必须是非终结符

image-20211103211517278

3型文法 RG

image-20211103211654253

右线性文法:产生式右部是终结符号串或者终结符号串右边加上一个非终结符

image-20211103212108020

四者关系

image-20211103212639774

2-5

image-20211103212949410

注意叶节点的标号也可以是非终结符

对于推导过程中得到的每一个句型ai,都可以构造出一个边缘为ai的分析树

短语|直接短语

image-20211103213436258

产生式右部不一定在每个分析树中出现

文法的二义性

image-20211103213748956
所以要想办法消除二义性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值