- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验1编写词法分析程序
实验一 编写词法分析程序
1 实验类型
设计型实验
2 实验目的
通过设计、调试词法分析程序,掌握词法分析程序的设计工具,即有穷自动机,进一步理解自动机理论;掌握文法转换成自动机的技术及有穷自动机实现的方法;会确定词法分析器的输出形式及标识符与关键字的区分方法;加深对课堂教学的理解,提高词法分析方法的实践能力。
3 背景知识
词法分析作为相对独立的阶段来完成(对源程序或中间结果从头到尾扫描一次,并作相应的加工处理,生成新的中间结果或目标程序)。在词法分析过程中,编译程序从外部介质中读取源程序文件中的各个字符,为正确地识别单词,有时还需进行超前有哪些信誉好的足球投注网站和回退字符等操作。因此,为了提高读盘效率和便于扫描器进行工作,通常可采用缓冲输入的方案,即在内存中设置一个适当大小的输入缓冲区,将磁盘上的源程序字符串分批送入该缓冲区中,供扫描器进行处理。
词法分析程序的一般设计方案是:
1、程序设计语言词法规则?正则文法? FA;
或:词法规则?正则表达式? FANFA确定化? DFA;
3、DFA最小化;
4、确定单词符号输出形式;
5、化简后的DFA+单词符号输出形式?构造词法分析程序。
从设计方案可知,要构造词法分析程序,必须掌握以下三个知识点:文法、正则表达式FA。
文法与语言的形式定义如下:
一个形式文法 G 是下述元素构成的一个元组(VN ,VT ,PS )。其中:
1、 VT —非空有限的终结符号集,即 Σ;
终结符:一个语言不可再分的基本符号。
2、VN—非空有限的非终结符号集;
非终结符:也称语法变量,用来代表语法范畴。一个非终结符代表一个一定的语法概念,是一个类(集合)记号,而不是一个体记号。
3、S —开始符号/识别符号,S∈ VN ;
4、P —产生式规则集(或叫规则或生成式或重写规则);
产生式:形如α → β或α ::= β的表达式,其中α为左部,β为右部。α∈(VT∪VN)+且至少含一个VN;β∈(VT∪VN)*。
5、VT∪VN =Ф。
仅由字母表A={ai i=1,2,…,k}上的正则表达式α所组成的语言称为正则集,记为L(α )。正则集的形式化描述式称为正则表达式。字母表S上的正则表达式和正则集递归定义如下:
1、S 中的a{a};
2、空串e是S上的正则表达式,其正则集为{e};
3、空集F是S上的正则表达式,其正则集为F ;
e1和e2是S上的正则表达式,它们所表示的正则集分别为L(e1)与L(e2) ,则:
e1|e2也是S上的正则表达式,其正则集为L(e1|e2)=L(e1) ∪L(e2)。
e1e2也是S上的正则表达式,其正则集为L(e1e2)=L(e1) L(e2)。
(e1)* 也是S上的正则表达式,其正则集为L((e1)* )=L(e1)*。
而确定有限自动机(DFA)理论定义DFA M=(Q ,S ,t ,q0 ,F)。其中:
1、Q —有穷非空状态集;
2、S —有穷输入字母表;
3、t — 映射Q ′ S → Q(单值映射,下态确定);
4、q0 —q0∈Q,称为开始状态(唯一);
5、F —非空终止状态集;
非确定有限自动机(NFA M) 定义与DFA M的比较可知: NFA可有多个初态,并可能含ε弧或字符串弧;在NFA中,t是多值的,即t(s, a)无法唯一地确定下一状态。
对于FA,最重要的是给出其映射。可以由状态转换表,状态转换图或者直接给出。
1、直接给出:t(q ,a)=q’;
2、状态转换表:状态为表列,字母为表行;
3、状态转换图:是由一组矢线连接的有限个结点所组成的有向图。每一结点均代表在识别或分析过程中扫描器所处的状态。它是设计和实现扫描器的一种有效工具,是有限自动机的直观图示。下面是标识符的状态图:
图1:标识符状态图
(正则表达式与有限自动机的等价性)定义:对任何两个有限的自动机M1和M2,若有L(M1)=L(M2),则称M1与M2等价。
可通过子集法或造表法求解NFA的等价DFA(NFA的确定化方法)。
NFA的确定化方法算法(表格法):
1、画一张具有n+1列的矩阵表P,n = NFA中出现的符号的个数。各应列的名字分别为I,Ia,Ib,IC,…,其中,a,b,c…是NFA中出的所有字符。
2、 令I = ε-CLOSURE(S0)。S0:NFA的初态集。
ε-CLOSURE(S0) = S0∪Sε
Sε= {s| 从S0的某一状态出发经过任意条ε弧可达s}
3、 把I填入P的I列
4、计算Ia,Ib,IC,…,并填入相应的列。
Ia = ε-CLOSURE(Ja)
Ja = {s | 从I的某一状态出发经过一条a弧可到s}
5、若J∈{ Ia,Ib,IC,…}未在I列出现,则令I = J。
并重复3~5直列所有的J均在I列中出现过。
6、把
您可能关注的文档
- 安徽省安工大附中2011–2012学年高二文理科分科考试化学试题.doc
- 安徽省小学一年级数学〔北师大版下册教案〕.doc
- 安徽省宿州市2012届高三第三次教学质量检测〔语文全word版〕.doc
- 安徽省安庆市望江中学2014届高三语文上学期第4次月考试题.doc
- 安徽省宿州市2012届高三下学期第三次教学质量检测〔语文〕〔word版〕.doc
- 安徽省宿州市泗县二中2013届高三上学期第三次月考测试〔历史〕.doc
- 安徽省巢湖市2009届高三第1次教学质量检测数学文科试卷.doc
- 安徽省无为一中2011届高三语文上学期第三次月考题新人教版〔会员独享〕.doc
- 安徽省安庆一中安师大附中2014届高三一月联考数学理.doc
- 安徽省宿州市2012届高三第3次教学质量检测语文试题.doc
文档评论(0)