- 1、本文档共100页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《编译原理实践及应用》第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.;2. 符号表
各种常数和标识符一般放在符号表中,在输出的token文件中的单词属性值则存放单词在符号表中的指针
符号表的格式:字符串 if (ab2) test:=3;;{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 词法分析程序的设计;词法分析程序的接口;;;;识别单词;单词的构成规则用状态转换图表示;一个状态图可用于识别一定的字符串,大多数程序设计语言的单词符号都可以用转换图来识别。;写成C语言的函数形式:
recog_id()
{ …
char state = 0;
ch = getch();
do {
switch(state){
Case 0: if ch 是字母 state = 1; ch = getch();break;
Case 1: if ch 是字母或数字 {
state = 1; ch = getch(); }
else state = 2;
break;
}
} while (state != 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,则从状态结
您可能关注的文档
- 《笔算乘法多位数乘一位数不进位》教学内容.ppt
- 《闭关锁国》课件知识讲解.ppt
- 《碧螺春》课件1剖析教程文件.ppt
- 《边城》.PPT备课讲稿.ppt
- 《边城》2课件资料讲解.ppt
- 《边城》20180909培训课件.ppt
- 《边城》ppt解析说课材料.ppt
- 《边城》PPT课件-沈从文讲课讲稿.ppt
- 《边城》ppt剖析复习进程.ppt
- 《边城》ppt说课材料.ppt
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
文档评论(0)