- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 第一章 编译程序概述 第二章 PL/0编译程序的实现 第三章 文法和语言 第四章 词法分析 第五章 自顶向下语法分析方法 第六章 自底向上优先分析方法 第七章 LR分析方法 第八章 语法制导翻译和中间代码生成 第九章 符号表 第一○章 代码优化 第一一章 代码生成 单词的描述工具 某种程序设计语言中的所有单词构成一种语言。该语言的语法都能用正规文法表示。正规文法是描述单词的一种工具。 1、正规文法(回顾) 文法G=(VN,VT,P,S),P中每一规则有A→aB或A→a ,A,B?VN,a?VT*,称G(S)是正规文法。 标识符 →l|l 字母数字 字母数字 → l|d|l字母数字| d 字母数字 无符号整数 → d|d无符号整数 l表示a-z中的任何英文字母,d表示0-9中的任何数字 由正规文法产生的语言称为正规集 2、正规式(正则表达式) 是表示正规集的工具,也是用以描述单词符号的方便工具。 ? ? a b ----------- (a) 一个正规式可以表示若干个符号串, (b) 其正规集就是这些符号串的集合 a|b ab a* b* ------------------- (a|b)* a*|b* aba* (a|b)*(aa|bb) (a|b)* ? {?} ? ? a {a} b {b} ----------- (a) {a} 一个正规式可以表示若干个符号串, (b) {b} 其正规集就是这些符号串的集合 a|b {a,b} ab {ab} a* {?,a,aa,aaa,aaaa,….} b* {?,b,bb,bbb,bbbb,….} ------------------- (a|b)* a和b组成的所有串 a*|b* {?,a,aa,aaa,aaaa,….,b,bb,bbb,bbbb,….} aba* 以ab开头后接若干个(包括0个)a组成的串 (a|b)*(aa|bb) (a|b)* ?*上所有含有两个相继的a或两个相继的b组成的串 自动识别单词的方法: (1)把单词的结构用正规式描述; (2)把正规式转换为一个NFA; (3)把NFA转换为相应的DFA; (4)基于DFA构造词法分析程序。 NFA 转换为等价的DFA 从NFA的矩阵表示中可以看出,表项通常是一状态的集合,而在DFA的矩阵表示中,表项是一个状态,NFA到相应的DFA的构造的基本思路是: DFA的每一个状态对应NFA的一组状态. DFA使用它的状态去记录在NFA读入一个输入符号后可能达到的所有状态. 定义对状态集合I的几个有关运算: 1. 状态集合I的ε-闭包,表示为ε-closure(I),定义为一状态集,是状态集I中的任何状态S经任意条ε弧而能到达的状态的集合。 状态集合I的任何状态S都属于ε-closure(I)。 2. 状态集合I的a弧转换,表示为move(I,a)定义为状态集合J,其中J是所有那些可从I中的某一状态经过一条a弧而到达的状态的全体。 状态集合I的有关运算的例子 I={1}, ?-closure(I)=?; I={5}, ?-closure(I)=?; move({1,2},a)=? ?-closure({5,3,4})=?; 状态集合I的有关运算的例子 I={1}, ?-closure(I)={1,2}; I={5}, ?-closure(I)={5,6,2}; move({1,2},a)={5,3,4} ?-closure({5,3,4})={2,3,4,5,6,7,8}; NFA确定化算法: 假设NFA N=(K, ?,f,K0,Kt)按如下办法构造一个DFA M=(S, ?,d,S0,St),使得L(M)=L(N): 1. 构造DFA M的状态,选择NFA N的状态的一些子集构成: M的状态集S由K的一些子集组成。用[S1 S2... Sj]表示S的元素,其中S1, S2,,... Sj是K的状态。并且约定,状态S1, S2,,... Sj是按某种规则排列的,即对于子集{S1, S2}={ S2, S1,}来说,S的状态就是[S1 S2]; 2 M和N的输入字母表是相同的,即是?; 构造DFA M的转换函数,根据新构造的状态和字母表中的字符构造: 转换函数是这样定义的: d([S1 S2,... Sj],a)= [R1R2... Rt] 其中 {R1,R2,... , Rt} = ?-closure(move({S1
您可能关注的文档
- (北科)力学大作业剖析.docx
- 4-金属2剖析.ppt
- 毕业设计答辩-田丹剖析.ppt
- 毕业设计翻译120801422剖析.docx
- 毕业设计幻灯片展示剖析.ppt
- 毕业设计汇报剖析.pptx
- 毕泽:经典:波的图像(教科版)剖析.ppt
- 闭合电路的欧姆定律(第1课时)剖析.ppt
- 闭合电路的欧姆定律1剖析.ppt
- 闭合电路的欧姆定律教学剖析.ppt
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)