- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 编译原理词法分析
第2章 词法分析 2.1 词法分析器设计方法 2.2 一个简单的词法分析器示例 2.3 正规表达式与有限自动机简介 2.4 正规表达式到有限自动机的构造 2.5 词法分析器的自动生成 2.1 词法分析器设计方法 词法分析是编译的第一个阶段,其任务是:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号,把字符串形式的源程序改造成为单词符号串形式的中间程序。执行词法分析的程序称为词法分析程序,也称为词法分析器或扫描器。词法分析器的功能是输入源程序,输出单词符号。 词法分析可以采用如下两种处理结构: (1) 把词法分析程序作为主程序。将词法分析工作作为独立的一遍来完成,即把词法分析与语法分析明显分开,由词法分析程序将字符串形式的源程序改造成单词符号串形式的中间程序,以这个中间程序作为语法分析程序的输入。在这种处理结构中,词法分析和语法分析是分别实现的,如图2–1(a)所示。 (2) 把词法分析程序作为语法分析程序调用的子程序。在进行语法分析时,每当语法分析程序需要一个单词时便调用词法分析程序,词法分析程序每一次调用便从字符串源程序中识别出一个单词交给语法分析程序。在这种处理结构中,词法分析和语法分析实际上是交替进行的,如图2–1(b)所示。 由于把词法分析器安排成一个子程序比较自然,因此,词法分析程序通常采用第二种处理结构。 2.1.1 单词符号的分类与输出形式 1.单词符号分类 词法分析程序简单地说就是读单词程序,该程序扫描用高级语言编写的源程序,将源程序中由单词符号组成的字符串分解出一个个单词来。因此,单词符号是程序语言的基本语法单位,具有确定的语法意义。程序语言的单词符号通常可分为下面五种: (1) 保留字(也称基本字):如C语言中的if、else、while和do等,这些字保留了语言所规定的含义,是编译程序识别各类语法成分的依据。几乎所有程序语言都限制用户使用保留字来作为标识符。 (2) 标识符:用来标记常量、数组、类型、变量、过程或函数名等,通常由用户自己定义。 (3) 常数:包括各种类型的常数,如整型常数386、实型常数0.618、布尔型常数TRUE等。 (4) 运算符:如“+”、“?”、“*”、“/”、“”、“”等。 (5) 界符:在语言中是作为语法上的分界符号使用的,如“,”、“;”、“(”、“)”等。 ? 一个程序语言的保留字、运算符和界符的个数是确定的,而标识符或常数的使用则不限定个数。 2.词法分析程序输出单词的形式 我们知道,词法分析程序的输入是源程序字符串,而输出是与源程序等价的单词符号序列,并且所输出的单词符号通常表示成如下的二元式: (单词种别,单词自身的值) (1) 单词种别。单词种别表示单词的种类,它是语法分析所需要的信息。一个语言的单词符号如何划分种类、分为几类、如何编码都属于技术性问题,主要取决于处理上的方便。通常让每种单词对应一个整数码,这样可最大限度地把各个单词区别开来。 对于保留字,可将其全体视为一种,也可一字一种,采用一字一种的分类方法处理起来比较方便;标识符一般统归为一种;常数可统归为一种,也可按整型、实型、布尔型等分为几种;运算符和界符可采用一符一种的分法,也可统归为一种。 (2) 单词自身的值。单词自身的值是编译中其它阶段所需要的信息。对于单词符号来说,如果一个种别只含有一个单词符号,那么对于这个单词符号,其种别编码就完全代表了它自身的值。如果一个种别含有多个单词符号,那么对于它的每个单词符号,除了给出种别编码之外还应给出单词符号自身的值,以便把同一种类的单词区别开来。注意,标识符自身的值就是标识符自身的字符串,而常数自身的值是常数本身的二进制数值。此外,我们也可用指向某类表格中一个特定项目的指针来区分同类中的不同单词。例如,对于标识符,可以用它在符号表的入口指针作为它自身的值;而常数也可用它在常数表的入口指针作为它自身的值。 2.1.2 状态转换图 ? 在词法分析中,可以用状态转换图来识别单词。状态转换图是有限的有向图,结点代表状态,用圆圈表示;结点之间可由有向边连接,有向边上可标记字符。例如,图2-2表示在状态i下,若输入字符为x,则读入x并转换到状态j;若输入字符为
您可能关注的文档
- 第03章对称密码体制.ppt
- 第03讲 字符串.ppt
- 第03讲 指针3.ppt
- 第03讲.层叠样式表.ppt
- 第03讲_进程间通信与同步.ppt
- 第03讲计算机中信息的表示及编码 - 幻灯片1.ppt
- 第03讲 火成岩的结构构造.ppt
- 第03讲:数据编码.ppt
- 第03讲(可编程逻辑器件).ppt
- 第05章 中断技术1.ppt
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
最近下载
- 《中国结核病预防控制工作技术规范(2020年版)》.PDF VIP
- 2023年北京市中考英语真题(含答案) .pdf VIP
- 南通大学2023-2024学年《病理学》期末考试试卷(A卷)附参考答案.docx
- 胸部损伤-教学课件.ppt VIP
- 某银行数据中心搬迁整体实施方案.pdf VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 国家公务员录用考试体检标准.doc VIP
- 入党申请书时事政治精选五篇.docx VIP
- 农村公路安全生命防护工程监理规划49943.doc VIP
- 高中英语3500词【打印版】乱序版3500词汇(带音标120页).pdf VIP
文档评论(0)