- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理
第一章 编译程序概述
第二章 PL/0编译程序的实现
第三章 文法和语言
第四章 词法分析
第五章 自顶向下语法分析方法
第六章 自底向上优先分析方法
第七章 LR分析方法
第八章 语法制导翻译和中间代码生成
第九章 符号表
第一○章 代码优化
第一一章 代码生成
1
词法分析
词法分析是编译过程的第一个阶段。
主要任务:从左到右逐个字符地对源程序进行 扫描,产生一个个单词序列,用以语法分析。
词法分析的基本思路:
•将单词符号的语法用有效的工具描述;
•基于该描述建立单词的识别机制;
•设计和实现词法分析程序
2
• 单词的描述技术
•正规文法
•正规式
• 单词的识别机制
•确定有穷自动机
•不确定有穷自动机
•词法分析程序的自动构造原理
•正规式和有穷自动机的等价性
•词法分析程序的自动构造工具
3
单词的描述工具
某种程序设计语言中的所有单词构成一种语言。该语言的语法都 能用正规文法表示。正规文法是描述单词的一种工具。
1、正规文法(回顾)
文法G=(VN,VT,P,S),P中每一规则有A→aB或A→a ,A,B VN, a VT* ,称G(S)是正规文法。
标识符 → l | l 字母数字
字母数字 → l |d| l字母数字| d 字母数字
无符号整数 → d|d无符号整数
l表示a-z中的任何英文字母, d表示0-9中的任何数字 由正规文法产生的语言称为正规集
4
2、正规式(正则表达式)
是表示正规集的工具,也是用以描述单词符号的方
便工具。
妇正规式与正规集的定义:
设字母表为Σ,辅助字母表Σ={0 ,c , |, · ,*, (,
) } ;
ü c和0都是Σ上的正规式,表示的正规集分别为{c}和0;
ü任何a= Σ,a是Σ上的一个正规式,表示的正规集为 {a};
5
ü假定e1和e2都是Σ上的正规式,它们所表示 的正规集分别为L(e1)和L(e2),则
(e1),e1|e2,e1 ·e2和e1*也都是正规式,所 表示的正规集分别为 L(e1),L(e1)∪L(e2), L(e1)L(e2)和(L(e1))*。
ü 仅由有限次使用上述三步骤而定义的表达 式才是Σ上的正规式,仅由这些正规式所表 示的集合才是Σ上的正规集。
例: ={a,b}, 上的正规式和相应的正 规集为:
6
• b*
• -------------------
• (a|b)*
• a*|b*
• aba*
. (a|b)*(aa|bb) (a|b)*
• -----------
• (a)
• (b)
• a|b
• ab
• a*
一个正规式可以表示若干个符号串, 其正规集就是这些符号串的集合
• 0
• a
• b
7
• a|b {a,b}
• ab {ab}
• a* { ,a,aa,aaa,aaaa,….}
• b* { ,b,bb,bbb,bbbb,….}
• -------------------
• (a|b)* a和b组成的所有串
• a*|b* { ,a,aa,aaa,aaaa,….,b,bb,bbb,bbbb,….}
• aba* 以ab开头后接若干个(包括0个)a组成的串
. (a|b)*(aa|bb) (a|b)* *上所有含有两个相继的a或两个相继的b组8成
的串
一个正规式可以表示若干个符号串, 其正规集就是这些符号串的集合
• -----------
• (a) {a}
• (b) {b}
•
• 0
• a
• b
{ }
0 {a} {b}
例:令 ={d,. ,e,+,-},则 上的正规式
d* (.dd* | )(e(+|- | )dd* | )表示的是所有无符号数。
其中d为0~9中的数字。
比如: 2,12.59,3.6e2,471.88e-1等都是正规式 表示集合中的元素。
设r ,s ,t为正规式,正规式服从代数规律有:
1 、r|s=s|r 交换律
2 、r|(s|t)=(r|s)|t 结合律
3 、(rs)t=r(st) 结合律
9
4. r(s|t) = rs|rt 分配律 (s|t)r = sr|tr 分配律
5. cr=r 零一律 程序设计语言中的单词既能用
rc=r 零一律 正规文法表示,又能用正规式
正规文法: 正规式?
标识符 →l|l 字母数字
字母数字 → l|d|l字母数
字| d 字母数字
无符号整数 → d|d无符号
整数
l表示a-z中的任何英文字母, d
您可能关注的文档
最近下载
- 幼儿消防课件图片模板.pptx VIP
- MUX-2MD继电保护信号数字复接接口装置说明书.docx VIP
- 21J925-2 金属面夹芯板建筑构造.pptx
- YYT 0681.15-2019 无菌医疗器械包装试验方法 第15部分:运输容器和系统的性能试验.docx VIP
- 信息技术《制作课程表》教学设计.pdf VIP
- 项目部罚款通知单.doc VIP
- AQ 2049-2013 地质勘查安全防护与应急救生用品(用具)配备要求.pdf VIP
- 酒店管理概论 全套课件(下).pptx VIP
- ZG42CrMo大型铸钢齿轮质量控制和热处理.pdf VIP
- 《比的整理与复习》-公开课件.ppt VIP
原创力文档


文档评论(0)