- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理
什么是编译程序?
编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。
编译的各个阶段
什么是文法?
文法是以又穷的集合刻画无穷的集合的一个工具。
1、字母表:它是非空有穷集。 例如:∑={a,b,c}或∑={1,2,3}
2、符号:字母表中的元素称为符号。
3、符号串:符号的有穷序列,符号串也称为字。用ε来表示空符号串。例如:a,ab,abc
4、长度:符号串的长度是指该串所包含的符号个数。用|x|表示符号串x的长度。
例如:|a|=1,|abn|=3
5、连结:设x和y为符号串,则称xy 为他们的连结。 例如:x=aa,y=bb,则xy=aabb
6、空集:不含任何元素的集合,记为(。
7、乘积:设A和B是符号串集,则用AB表示A和B的乘积。A={a,b},B={c,d},则AB={ac,ad,bc,bd}
8、方幂:设A为符号串集,则定义
A0={ε}
A1=A
An=An-1 A
例如:A={a,b} 则有:
A0={ε} A1={a,b}
A2={aa,ab,ba,bb}
9、正闭包:设A为符号串集,则用A+表示A的正闭包,其具体定义如下:
A+=A1∪A2∪A3∪(…
例如:A={a},A+={a,aa,aaa,……}
10、星闭包:设A为一集合,则定义A的星闭包为A* ,其具体定义如下A*=A0∪A+
例如:A={a},A*={ε,a,aa,aaa,……}
文法G定义为四元组(VN,VT,P,S )其中
VN为非终结符号(或语法实体,或变量)集;
VT为终结符号集;
P为产生式(也称规则)的集合; VN,VT和P是非空有穷集。
S称作识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。 VN和VT不含公共的元素,即VN ∩ VT = φ
用V表示VN ∪ VT ,称为文法G的字母表或字汇表
例 文法G=(VN,VT,P,S)
VN = { S }, VT ={ 0, 1 }
P={ S→0S1, S→01 }
S为开始符号
推导:用若干次产生式可从x串导出y串,则称y为x的推导,记为xy。
直接推导:用一次产生式可从x导出y,则称y为x的直接推导,并记为x(y。
星推导:x y(当且仅当x=y或x y)。
句型:由初始符推出的任意符号集合。
句子:不包含非终结符的句型。
最左推导:推导的每一步都是对最左非终结符进行替换。
最右推导(规范推导):推导的每一步都是对最右非终结符进行替换。所得句型称为规范句型。
0型文法(短语结构文法):产生式为:α→β,其中α和β是符号串。
1型文法(上下文有关文法):产生式:αAβ→αuβ,其中A∈VN,u为非空串。
2型文法(上下文无关文法): A→β,其中A∈VN,β为非空串。
3型文法(正则文法):产生式为:A→a,A→bB,其中A,B∈VN, #a,b∈VT是符号串。
四种文法包含关系:0型文法→1型文法→2型文法→3型文法
二义性文法:一个文法存在某个句子使得它有两棵语法树。例G:E→E+E|E*E|(E)|i
将词法分析从语法分析部分独立出来的原因
1、使整个编译程序的结构更简洁、清晰、条例化
2、改进编译效率
3、增加编译系统的可移植性
例4.2.1: 令(={a,b},则(上的正规式和相应正规集为
(1) a (1) {a}
(2) a(b (2) {a,b}
(3) ab (3) {ab}
(4) (a(b)(a(b) (4) {aa,ab,ba,bb}
(5) a ( (5) {( ,a,aa, ……任意个a的串}
(6) (a(b)( (6) {( ,a,b,aa,ab,bb ……所有由 a和b组成的串}
(7) (a(b)((aa(bb)(a(b)( (7) ((上所有含有两个相继的a或两个相继的b组成的串}
正规式→正规文法、正规文法→正规式转换规则:
正规产生式 正规文法 正规文法 正规产生式 A=xy A→xB, B→y A→xB, B→y A=xy A=x*y A→xB, A→y, B→xB, B→y A→xA|y A=x*y A=x|y A→x, A→y A→x, A→y A=x|y 例4.2.4:
将G[S]转换为正规式
S→aA
S→a
A→aA
A→dA
A→a
A→d 解:由文法G[S]得
S=aA|a
A=(aA|dA)|(a|d)
则
S= a(a|d)*(a|d)|a
= a((a|d)*(a|d)
您可能关注的文档
最近下载
- 《我们班四岁了(第一课时)》课件.pptx VIP
- 银屑病关节炎早期识别与诊治专家共识解读.docx VIP
- 人教版四年级上册数学期中试卷及答案.docx VIP
- 系统健壮性分析课件.pptx VIP
- Power Up教材配套测试PU2期末测试卷答案.pdf VIP
- 农村公路病害识别图、日常巡查保养记录表、群众性养护日常保养常见问题与处治方式汇总.pdf VIP
- 2019医用输液泵和医用注射泵安全管理.docx VIP
- 儿童医院“十五五”发展规划方案(2026-2030年).docx
- 护理不良事件-课件.pptx VIP
- 危险化学品建设项目变更情形及审查要求、适用简易程序的建设项目种类.docx VIP
原创力文档


文档评论(0)