- 1、本文档共205页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
新工科建设·计算机类系列教材;6;;;;;;;;;;;;标识符或保留字;;设无符号数为:
t=….…E…
(整数部分)(小数部分)(指数部分)
令W=……1
P=…e=
则t=W-1
读无符号数的程序流程图见图4.7;;;;;
1、辅助定义
在使用LEX语言时,先将高级语言的词法写成辅助定义式(类似宏定义)。
例:⑴标识符
letter→A|B…|a|b…|z
digit→0|1|…|9
ident→letter(letter|digit)*
⑵整常数
integer→digit(digit)*;⑶一般实常数
sign→+|-|ε
signinteger→signinteger
decimal→signinteger.integer|sign.integer
⑷含指数部分的实数
exprel→(decimal|signinteger)Esigninteger
⑸实常数
real→decimal|exprel
;2.识别规则(规定了相应词法分析程序的功能);标识符:
letter
{if(keyword(id)!=0)return(keyword(id));
else{return(15);
return(id)}}
keyword()查保留字表,=0未查到
;3.用户子程序(辅助函数部分);;;28;29;;新工科建设·计算机类系列教材;6;;语法分析是编译过程的核心部分。
-----在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。;;;例:文法G[S]:S?ABA?abB?cd|cBd
判断abccdd是否是句子。
(1)自顶向下构造语法树
S
AB
abcBd
cd;;例:G[E]:E?E+T|T
T?T*F|F
F?(E)|i
则:First(E+T)={(,i}
First(T)={(,i}
First(T*F)={(,i};2.Follow集(向前看集);3.Select集(可选集);例:对于G[E]
select(E?E+T)=First(E+T)={(,i}
select(E?T)=First(T)={(,i}
select(T?T*F)=First(T*F)={(,i}
select(T?F)=First(F)={(,i}
select(F?(E))=First((E))={(}
select(F?i)=First(i)={i}
;例:G[S]:
S?aBc|bB
B?bB|d|ε
Select(B?ε)=Follow(B)={#,c};;分析时可能出现:
(1)回溯
(2)死循环,在没有对当前输入符号匹配就进入处
理S的过程,无法确定什么时候才用S?b替换,
造成死循环.
解决方法:
文法的实用限制(算法6)
消除左递归
扩充的BNF表示法;2.回溯问题;首先:对每条规则A?β,
First(β)β≠ε
求Select(A?β)=
Follow(A)β=ε
当β≠ε时,对于当前输入符号a,若
a∈First(β)
则可选A?β进行推导,但A有n个候选式,
∴分两种情况.;(1)首符号不同;(2)首符号相同;例:U?αx1|αx2|x3|…|xn
且First(xi)∩First(xj)=Φ,(i,j≥3,i≠j
您可能关注的文档
- 编译原理简明教程(第3版)-课件 第1--3章 概述、形式语言理论基础、自动机原理.pptx
- 编译原理简明教程(第3版)-课件 第9、10章 目标代码的生成、符号表和出错处理.pptx
- 编译原理简明教程(第3版)-课件 第11、12章 面向对象语言的编译、并行编译技术.pptx
- 编译原理简明教程(第3版)-课件 第12、13章 并行编译技术、 软件构造.pptx
- 编译原理简明教程(第3版)-课件全套 冯秀芳 第1--13章 概述、形式语言理论基础---软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 00引言;01软件开发概述;02模块化软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 03面向对象的软件构造;04数据处理的软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 05用户交互的软件构造;06软件重构与交付;07GUI软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 08应用数据库;09基于复用的软件构造.pptx
- 基于案例的软件构造教程(第2版)课件全套 李劲华 00引言;01软件开发概述---09基于复用的软件构造.pptx
文档评论(0)