- 1、本文档共110页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析是编译的第一个阶段,在单词的级
别上分析和翻译源程序。
主要任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词序列。
其他任务:
滤掉源程序中的注释和空白
记录新读入的字符行的行号,以便行号与出错信息相连
在支持宏处理功能的源语言中,可以由其完成预处理:宏展开。
; 4.1.1 词法分析程序与语法分析程序的接口方式;2.把词法分析工作作为子程序;4.1.2 词法分析程序的输出; (1)关键字:if、for、while
(2)标识符:用来表示各种名字,
如常量名、变量名和过程名等。
(3) 常数:100、3.14159、TRUE、’sample’
(4) 运算符:+,*,=
(5)分界符:, ; ( );三.输出表示-----单词的内部形式
;4.2 单词的描述工具;4.2.1 正规文法;不属于三型文法;4.2.1 正规文法;例4.1 描述无符号数的正规文法:
无符号数 d余留无符号数|.十进小数|e指数部分
余留无符号数 d余留无符号数
|.十进小数|e指数部分| ?
十进小数 d余留十进小数
余留十进小数 e指数部分|d余留十进小数|?
指数部分 d余留整指数|s整指数
整指数 d余留整指数
余留整指数 d余留整指数|?
其中,s表示正或负号(+,-);4.2.2 正规式(regular expression);例题 设Σ={a,b,c},则aa*bb*cc*是∑上的一个正规式,它所表示的正规集:;练习;2.请描述下面正规式定义的串. ∑= {0,1}。
a) 0*(100*)*0*
b) (0|1)*(00|11)(0|1)*
c) 1(0|1)*0 ;两正规式等价? 两正规式表示的正规集相同; (ab)*与a*b*
(ab)*对应的正规集是以任意个ab对出现的,即ababab…;而a*b*对应的正规集则是先出现任意个a后接任意个b,即a…ab…b;因此两者不等价。 ;(a∣b)*与(a*b*)*
a、b可任意交替出现
(a*b*)*=({?,a,aa,aaa,…}{?,b,bb,bbb…})*
=({?,a,b,aa,ab,bb,abb,abbb,aab,aabb,aaabbb…})*
;四.正规式的性质;程序设计语言中的单词可以使用
正规式
正规文法
标识符
字母(字母|数字)*
〈标识符〉→l|l〈字母数字〉
〈???母数字〉→l|d|l〈字母数字〉|d〈字母数字〉
无符号整数
数字(数字)*
〈无符号整数〉→d|d〈无符号整数〉;4.2.3 正规文法和正规式的等价性;4.2.3 正规文法和正规式的等价性;步骤1 构造 S→r
步骤2 不断利用下表的规则做变换,直到每个产生式最多含有一个终结符为止
;*;三、正规文法?正规式;例 将文法G[S]转换成正规式
G:S→aA|a
A→dA|d
先由产生式得: S=aA|a A=d*d
将A代入S中得: S=ad*d|a
利用正规式变换得 S=a(d*d|ε)=ad*
说明:d*d|ε=(ε|d|dd|…)d|ε
=d|dd|…|ε= d*
所求正规式为ad*
;G?r;r?G;词法分析程序的输入是什么?输出是什么?以什么形式输出?完成什么功能?
词法分析程序与语法分析程序的接口方式有哪两种?
程序设计语言中的单词的描述工具有?
什么是正规式?什么是正规集?
正规式、正规文法、正规集的关系。
题型1:给定正规式,写正规集。
题型2:给定正规集,写正规式。
题型3:判断两个正规式等价
题型4:正规式?正规文法
题型5:正规文法?正规式
;4.3 有穷自动机(FA);有穷自动机(FA);有穷自动机分为两类:
确定的有穷自动机(DFA)
(Deterministic Finite Automata)
不确定的有穷自动机(NFA)
(Nondeterministic Finite Automata) ; 确定的有穷自动机是一个五元组M=(K,?,f,S,Z),其中:
K:有穷状态集
?:有穷字母表
f:K???K上的单值映射,f(s,a)=s’
S:唯一的初态,S∈K
Z:终止状态集,Z?K ;二.DFA的两种表示方式;例4.6 DFA M=({S,U,V,Q},{a,b},f,S,{Q})
其中f定义为:
f(S,a)=U f(V,a)=U
f(S,b)=V f(V,b)=Q
f(U,a)=Q f(Q,a)=Q
f(U,b)=V f(Q,b)=Q; 状态转换图;状态转换矩阵;总结;练习;对于∑*中的任何符号串t,若存在一条从初态
您可能关注的文档
最近下载
- 一种检测磷酸铁锂粉末中磁性金属异物及磷化铁含量的方法.pdf VIP
- 2023年华为公司招聘职位要求.pdf
- 三年级心理健康第1-16课全册教案.pdf
- 2021面瘫的针灸治疗测试题【附答案】.doc
- IATF16949第五版DFMEA管理程序+潜在失效模式及后果分析程序.doc
- 智慧城市大数据平台设计方案.pdf VIP
- 匹兹堡睡眠质量指数(PSQI)表格版-打印保健养生.docx
- 林木林地权属争议处理申请书(样本).pptx
- 手机销售网站的设计与实现.doc VIP
- 河南省图集 12YN6、12YN7、12YN9 热力工程、民用建筑空调与供暖冷热计量设计与安装 DBJT19-07-2012.docx
文档评论(0)