南京大学:《编译原理》课程教学资源(PPT课件讲稿)第三章 词法分析

第三章词法分析 赵建华 南京大学计算机系 2009年2月
第三章 词法分析 赵建华 南京大学计算机系 2009年2月

内容 ·词法分析器的作用 词法单元的规约 词法单元的识别 ·词法分析器生成工具Lex 有穷自动机 从正则表达式到自动机 词法分析器生成工具的设计方法
内容 • 词法分析器的作用 • 词法单元的规约 • 词法单元的识别 • 词法分析器生成工具Lex • 有穷自动机 • 从正则表达式到自动机 • 词法分析器生成工具的设计方法

词法分析器的作用 读入源程序字待流、组成词素,输出词法单元序列。 过滤空白、换行、制表符、注释等 ·将词素添加到符号表中 在逻辑上独立于语法分析,但是通常和语法分析器 处于同一趟中 词法单元 源程序 词法分 语法分输出至语 析器 析器 义分析 getNextToken 符号表 图3-1词法分析器与语法分析器之间的交互
词法分析器的作用 • 读入源程序字符流、组成词素,输出词法单元序列。 • 过滤空白、换行、制表符、注释等。 • 将词素添加到符号表中。 • 在逻辑上独立于语法分析,但是通常和语法分析器 处于同一趟中

为什么要设立独立的词法分析器 简化编译器的设讣 词法分析器可以首先完成一些简单的处理工作。 ·提高编译器效率 相对于语法分析,词法分析过程简单.可高效 实现。(下推自动机VS有穷自动机 ·增强编译器的可移植性
为什么要设立独立的词法分析器 • 简化编译器的设计 – 词法分析器可以首先完成一些简单的处理工作。 • 提高编译器效率 – 相对于语法分析,词法分析过程简单,可高效 实现。(下推自动机 vs 有穷自动机) • 增强编译器的可移植性

词法单元、模式、词素 ·词法单元 单元名是表示词法单位种类的抽象符号:语法分析 器通过单元名即可确定词法单元序列的结构。 属性值通常用于语义分析之后的阶段 模式 描述了一类词法单元的词素可能具有的形式 词素 源程序中的字符序列 它和某个词法单元的模式匹配。被词法分析器识别 为该词法单元的实例
词法单元、模式、词素 • 词法单元 – – 单元名是表示词法单位种类的抽象符号;语法分析 器通过单元名即可确定词法单元序列的结构。 – 属性值通常用于语义分析之后的阶段 • 模式 – 描述了一类词法单元的词素可能具有的形式 • 词素 – 源程序中的字符序列 – 它和某个词法单元的模式匹配,被词法分析器识别 为该词法单元的实例

词法单元、模式、词素(倒子 printf( Total n. score printf, score和标识(id)的模式匹配 Total=%dn?和 litera的模式匹配 词法单元 非正式描述 词素示例 if 字符i,f if else 字符e else comparison或=或==或 id 字母开头的字母/数字串 Pi, score, D2 number 任何数字常量 3.14159,0,6.02e23 literal 在两个"之间,除"以外的任何字符“ core dumped 图3-2词法单元的例子
词法单元、模式、词素(例子) • printf(“Total = % d\n”, score); – printf, score和标识符(id)的模式匹配 – “Total = % d\n”和literal的模式匹配

词法单元的属性 一个模式匹配多个词素时,必须通过属性 来传递附加的信息。属性值将被用于语义 分析、代码生成等阶段。 不同的目的需要不同的属性。因此,属性 值通常是一个结构化数据。 词法单元jd的属性 词素、类型、第一次出现的位置
词法单元的属性 • 一个模式匹配多个词素时,必须通过属性 来传递附加的信息。属性值将被用于语义 分析、代码生成等阶段。 • 不同的目的需要不同的属性。因此,属性 值通常是一个结构化数据。 • 词法单元id的属性 – 词素、类型、第一次出现的位置、…

内容 词法分析器的作用 词法单元的规约 词法单元的识别 ·词法分析器生成工具Lex 有穷自动机 从正则表达式到自动机 词法分析器生成工具的设计方法
内容 • 词法分析器的作用 • 词法单元的规约 • 词法单元的识别 • 词法分析器生成工具Lex • 有穷自动机 • 从正则表达式到自动机 • 词法分析器生成工具的设计方法

词法单元的规约 正则表达式可以高效、简洁地描述处理词 法单元时用到的模式类型。 内容 串和语言 语言上的运算 正则表达式 正则定义 正则表达式的扩展
词法单元的规约 • 正则表达式可以高效、简洁地描述处理词 法单元时用到的模式类型。 • 内容 – 串和语言 – 语言上的运算 – 正则表达式 – 正则定义 – 正则表达式的扩展

串和语言(1) 字母表( alphabet):一个有穿的符号集合。 符号典型例子:字母、数位、标点符号。 例子:{0,1};ASCI; Unicode 在理论上,我们可以把任意的有限集合看作字母表。 字母表上的串( string)是该字母表中号的 有穷序列。 串s的长度,即s,是指s中符号出现的次数 空串:长度为0的串,£ 语言( Clanguage)是某个给定字母表上的串的 可数集合
串和语言(1) • 字母表(alphabet):一个有穷的符号集合。 – 符号典型例子:字母、数位、标点符号。 – 例子:{0,1};ASCII;Unicode – 在理论上,我们可以把任意的有限集合看作字母表。 • 字母表上的串(string)是该字母表中符号的 有穷序列。 – 串s的长度,即|s|,是指s中符号出现的次数; – 空串:长度为0的串,ε • 语言(language)是某个给定字母表上的串的 可数集合
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 电子科技大学:《计算机操作系统》课程教学资源(PPT课件)第一章 操作系统引论.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第五章 运输层.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 5 互斥与同步(Mutual Exclusion and Synchronization)5.1 Principles of Concurrency 5.2 Mutual Exclusion.ppt
- 中国科学技术大学:《计算机网络 Computer Networks(计算机通信网)》课程教学资源(PPT课件讲稿)Chapter 06 Internet Protocol.ppt
- 构建互联互通的单位局域网(PPT讲稿).ppt
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第八章 输入输出程序设计.ppt
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)空域滤波 Spatial Filtering.pptx
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 03 Network Management and Operation(Network Architetures and Standarts).pptx
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第三章 网络营销.ppt
- 河南中医药大学:《网络技术实训》课程教学资源(PPT课件讲稿)第7讲 网络安全实训(主讲:许成刚).pptx
- 《计算机应用基础》工学结合配套课件(PPT讲稿)模块二系统软件操作技术(Windows XP的实用工具).ppt
- 《C++程序设计》教学资源(PPT课件讲稿)构造函数和析构函数.ppt
- 《程序设计语言》课程教学资源(PPT课件讲稿)第5章 函数式程序设计语言.ppt
- 南京大学:移动Agent系统支撑(PPT讲稿)Agent Mobility Software Agent.pptx
- 计算机硬件维护(PPT课件讲稿).ppt
- 《MATLAB程序设计》课程教学资源(教学大纲)Matlab programming.doc
- 普林斯顿大学:平衡查找树(PPT讲稿)New Balanced Search Trees.pptx
- 清华大学:Top-k String Similarity Search with Edit-Distance Constraints.pptx
- 上海交通大学:网络安全 Network Security(PPT讲稿,朱浩瑾).pptx
- 《单片机原理及应用》课程教学资源_本科教学大纲汇编(电子信息工程专业).doc
- 同济大学:FWA for Noisy Optimization Problems(张军旗).pptx
- 西安培华学院:《计算机应用基础》课程教学资源(PPT课件讲稿)第1章 信息技术与计算机基础知识.ppt
- 香港科技大学:Recent Development of Heterogeneous Information Networks - From Meta-paths to Meta-graphs.pptx
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第9章 文件操作.ppt
- 理论计算机科学(PPT专题讲稿)Topics in Theoretical Computer Science(Linear Programming).pptx
- 北京建筑大学:《计算机图形学》课程教学资源(PPT课件讲稿)第一章 绪论(吕书强).ppt
- 清华大学:《计算机导论》课程电子教案(PPT教学课件)第5章 程序设计知识.ppt
- 中国科学技术大学:《计算机文化基础》课程教学资源(PPT课件讲稿,共四章,李金龙).ppt
- 《自然语言处理》课程教学资源(PPT课件讲稿)语言模型.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第7章 运输层.ppt
- 河南中医药大学(河南中医学院):《计算机文化》课程教学资源(PPT课件讲稿)第八章 数字多媒体.ppt
- 丽水职业技术学院:《电子商务实训》课程教学资源(PPT课件讲稿)电子商务交易模式之“B2C”.ppt
- 中国科学技术大学:《数据结构》课程教学资源(PPT课件)第八章 查找表.pps
- 《数据结构》课程教学资源(PPT课件讲稿)第九章 排序 Sort.ppt
- 《微机原理》课程教学资源(PPT课件讲稿)第三章 寻址方式与指令系统.ppt
- 《数据结构和编程设计》课程教学资源(PPT课件讲稿)Chapter 1 Programming Principles.ppt
- 西安电子科技大学:人工神经网络(PPT讲稿)Artificial Neural Networks(Introduction).ppt
- A New Approach for Accurate Modelling of Medium Access Control(MAC)Protocols.ppt
- 贵州师范学院:《高级语言程序设计 Advanced Programming》课程教学资源(PPT课件讲稿)第9章 结构体.ppt
- 《大型机高级系统管理技术》课程教学资源(PPT课件讲稿)第3章 作业控制语言.ppt