- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 编写法分析程序
实验一 编写词法分析程序
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、把
您可能关注的文档
- 安阳企业-管理训-做中国一流企业的成长之路.doc
- 完全掌握jav中的包机制200711494742.doc
- 完善心智模式 对本领恐慌.doc
- 完善我国公务员核制度的思考.doc
- 宋朝法律制度 1).doc
- 完整Web服务搭建.doc
- 宏经习题二(含案).jsp.doc
- 宏观真题汇总及案-091107考后整理版.doc
- 宏观经济与中国深300指数.docx
- 宏观经济学1217章课后答案.doc
- 中考语文总复习语文知识及应用专题5仿写修辞含句子理解市赛课公开课一等奖省课获奖课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第二课《藏猫猫》精品课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第三课《我向国旗敬个礼》精品课件.pptx
- 高中生物第四章生物的变异本章知识体系构建全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 整数指数幂市公开课一等奖省赛课微课金奖课件.pptx
- 一年级音乐上册第二单元你早全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级数学上册第二章实数27二次根式第四课时习题省公开课一等奖新课获奖课件.pptx
- 九年级物理全册11简单电路习题全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级语文下册第五单元19邹忌讽齐王纳谏省公开课一等奖新课获奖课件.pptx
- 2024年秋季新人教PEP版3年级上册英语全册教学课件 (2).pptx
最近下载
- 合肥市中小学生课后服务工作实施方案.docx
- 同期装置调试.doc VIP
- 2024年山东文化产业职业学院单招综合素质考试试题及答案解析.docx
- 2025年长沙卫生职业学院高职单招职业技能测验历年参考题库频考版含答案解析.docx
- 【核心素养】八年级地理下册人教版6.docx VIP
- 五年级下册数学课件-第一单元《1.1 根据平面图形摆几何体》人教版 (共20张PPT).pptx
- 实体肿瘤免疫治疗疗效评价标准.pptx
- 2024年江苏航空职业技术学院单招职业技能测试题库及参考答案.docx VIP
- 2024年江苏航空职业技术学院单招职业技能测试题库及参考答案.docx VIP
- 2024年江苏航空职业技术学院单招职业技能测试题库推荐.docx VIP
文档评论(0)