- 1、本文档共101页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理实践及应用PPT教学课件-第3章 词法分析
词法分析;主要内容:词法分析的任务,手工实现词法分析程序,正规式与有穷自动机,词法分析程序的自动生成
重点掌握:词法分析器的功能和接口,用状态转换图设计和实现词法分析程序,正规文法、正规式和有穷自动机的概念及相互转换;词法分析程序所处的位置:;3.1 词法分析器的功能;单词:是语言中具有独立意义的最小单位,常用单词分类:
保留字:具有固定意义的标识符
运算符
界符
标识符:表示各种名字
常数
对于一个程序设计语言,保留字、运算符和界符都是确定的,可以给以固定的编号(种别码)。
标识符是根据构词规则定义的,常数是符合定义的各种类型的常数;;某语言单词的种别码定义举例;词法分析器的输出;{this is a sample program writing in simple language}
program example1;
{used for illustrating compiling process}
var
a,b,c:integer;
x:char;
begin
if (a+c*3 b) and (b3) then c:=3;
end.;;;;;错???处理;词法错误类型;;3.2 词法分析程序的设计;词法分析程序的接口;;;;;识别单词;单词的构成规则用状态转换图表示;一个状态图可用于识别一定的字符串,大多数程序设计语言的单词符号都可以用转换图来识别。;;;练 习 1;;练 习 2;练 习 3;状态转换图的实现:使用一个switch case 语句:每条分支对应一个case语句段
见书P45 例;词法分析器的自动生成;3.3 正规文法、正规式与有穷自动机;;一、正规文法;;二、正规式;正规式和正规集的递归定义:(设字母表为?)
1、 ?和?都是?上的正规式,表示{?}和{ };
2 、任何a? ?,则a是正规式,表示{a};
3 、假定r和s都是?上的正规式,分别表示语言
L(r)和L(s):
a) (r) | (s)是正规式,表示L (r) U L (s) ;
b) (r)(s)是正规式,表示L (r)L (s);
c) (r)*是正规式,表示(L (r) )*;
d) (r)是正规式,表示L (r);
4、有限次使用上述三步骤而定义的表达式才是?上的正规式,仅由这些正规式所表示的集合才是?上的正规集。;;例1:令?={a,b}, ?上的正规式和相应的正规集有:;程序设计语言的单词都能用正规式来定义.
例2:令?={l,d},l 代表字母,d 代表数字,则?上的正规式: r = l(l?d)? 定义的正规集为: {l,ll,ld,lll,ldd,……},就是Pascal和 多数程序设计语言允许的的标识符的词法规则。;练 习;思考题:
?={d,. },则?上表示无符号数的正规式是什么?(不考虑含e的科学计数法,其中d为0~9的数字)
如:2 ,12.59 ,471.88等都是该集合中的元素。
;正规式的等价;三、有穷自动机;确定的有穷自动机DFA;例3:有DFA M =({0,1,2,3},{a,b}, δ,0,{3})
δ为:;一个DFA可以表示成一个状态图(或称状态转换图)。假定DFA M含有m个状态,n个输入字符,那么这个状态图含有m个结点,每个结点最多有n个弧射出,整个图含有唯一一个初态结点和若干个(可以是0个)终态结点,初态结点冠以双箭头“=” ,终态结点用双圈表示,若 δ (ki,a) =kj,则从状态结点ki到状态结点kj画标记为a的弧。;DFA的确定性表现在:
对任何状态s ∈S,在读入了输入符号a ∈ Σ 之后,能够唯一地确定下一个状态
映射函数δ:S×Σ→S是一个单值函数
从状态转换图来看,若字母表Σ含有n个输入字符,那末任何一个状态结点最多有n条弧射出,而且每条弧以一个不同的输入字符标记。;;;;文法和自动机的对比;不确定的有穷自动机NFA;NFA的矩阵表示;状态图表示;∑*上的符号串t被NFA M接受(识别):;4;例3:下列NFA定义的语言是什么?;;DFA与NFA的主要区别;DFA是NFA的特例.对每个NFA N一定存在一个DFA M,使得 L(M)=L(N)。也就是说:对每个NFA N存在着与之等价的DFA M。
方法:(子集法)将NFA转换成接受同样语言的DFA。
NFA确定化的基本思路是: DFA的每一个状态对应NFA的一组状态.
DFA使用它的状态去记录在NFA读入一个输入符号后可能达到的所有状态.;NFA的确定化;例5:有NFA如下:;练 习;;状态集合I的ε-闭包ε-closure(I),是一状态集
任何状态q ∈ I,则
您可能关注的文档
- 电路电子课件教案邱关源版 第12章 三相电路.ppt
- 百易时代技术部员工培训.ppt
- 电路电子课件教案邱关源版 第6章 储能元件.ppt
- 百金商店中国电信零售连锁店项目(摘要).ppt
- 白酒(国窖)品牌整合传播方案.ppt
- 益高担保软件演示9298425633.ppt
- 知识管理培训-BenQ.ppt
- 硪蕞歖歡嘚图片.ppt
- 硕士学位论文答辩 高效自动化脱硫技术研究与应用.ppt
- 礼仪规范培训31.ppt
- 作业危害个人安全与防护朱帅80课件.pptx
- 邮轮港口城市介绍青岛学校福建船政交通职业授课方丽君96课件.ppt
- 疫情应激状态下认知策略的心理应对方法学校武汉交通职业08课.pptx
- 邮轮港口城市介绍高雄学校福建船政交通职业授课方丽君37课件.ppt
- 永磁同步电机电动汽车驱动系统与控制56课件.ppt
- 液压机构的分合闸储能过程高铁变电所一次系统运行与维护70课.pptx
- 2026届新高考地理精准复习水圈物质交换与能量循环.pptx
- 2026届新高考语文热点精准复习:修改病句之成分赘余.pptx
- 2026届新高考地理精准复习 区域产业升级与转移——粤陶赣移谱合作新篇章,产业升级促高质量发展.pptx
- 2026届新高考地理精准复习水循环和水量平衡.pptx
文档评论(0)