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

第三章词法分析 戴新宇 南京大学 计算机科学与技术系
戴新宇 南京大学 计算机科学与技术系

Outline ●词法分析的作用 词法单元的规约(正则表达式) 词法单元的识别(状态转换图) ●有穷自动机 词法分析器生成工具及设计
Outline 词法分析的作用 词法单元的规约(正则表达式) 词法单元的识别(状态转换图) 有穷自动机 词法分析器生成工具及设计

词法分析器作用 口词法分析是读入源程序的输入字符、将它们组成词素,生成并输出 个词法单元序列,每个词法单元对应于一个词素。 常见的做法是: 由语法分析器调用,需要的时候不断读取、生成词法单元 可以避免额外的输入输出 在识别出词法单元之 理 比如删除 注释、将多 探金定盛不露结成词单的简单处 词法单元 源程序 词法分 语法分输出至语 析器 析器 义分析 getNext Token 符号表 图3-1词法分析器与语法分析器之间的交互
词法分析器作用 词法分析是读入源程序的输入字符、将它们组成词素,生成并输出一 个词法单元序列,每个词法单元对应于一个词素。 常见的做法是: 由语法分析器调用,需要的时候不断读取、生成词法单元 可以避免额外的输入输出 在识别出词法单元之外,还会完成一些不需要生成词法单元的简单处 理,比如删除注释、将多个连续的空白字符压缩成一个字符等

词法分析和语法分析 ●通常,将编译过程的分析划分成两个阶段的原因: 简化编译器的设计,任务分解 提高编译器的效率 ●增强编译器的可移植性
词法分析和语法分析 通常,将编译过程的分析划分成两个阶段的原因: 简化编译器的设计,任务分解 提高编译器的效率 增强编译器的可移植性

词法分析相关概念 词法单元( Token): 包含单元名( Token-name)和可选的属性值( (attribute-value) 单元名是表示某种词法单位抽象符号。语法分析器通过单元名 即可确定词法单元序列的结构。 ●词素( Lexeme) 源程序中的字符序列,它和某类词法单元的模式匹配,被词法 分析器识别为该词法单元的实例。 ●模式( Pattern) 词法单元的词素可能具有的形式。可以用正则表达式来表示
词法分析相关概念 词法单元(Token): 包含单元名(Token-name)和可选的属性值(attribute-value) 单元名是表示某种词法单位抽象符号。语法分析器通过单元名 即可确定词法单元序列的结构。 词素(Lexeme) 源程序中的字符序列,它和某类词法单元的模式匹配,被词法 分析器识别为该词法单元的实例。 模式(Pattern) 词法单元的词素可能具有的形式。可以用正则表达式来表示

词法单元示例 词法单元 非正式描述 词素示例 if 字符i,f if Ise 字符e,1,s,e else comparison或=或==或!= 字母开头的字母/数字串 Pi, score, D2 number 任何数字常量 3.14159,0,6.02e23 literal 在两个"之间,除"以外的任何字符“ core dumped 图3-2词法单元的例子 printf("Total=8 dn",sclore)
词法单元示例

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

词法单元示例(名和属性值) E=M*C**2
词法单元示例(名和属性值)

词法分析器的构造实现 两种方法: ●基于词法单元的词法结构图或其它描述,手工编写代码 扫描输入中的每个词素,并返回识别到的词法单元信息。 使用词法分析器生成工具(如 llex flex)。给出描述词素 的模式,利用工具编译为具有词法分析器功能的代码。 高效且简单 正则表达式 种描述词素模式的重要表示方法
词法分析器的构造实现 两种方法: 基于词法单元的词法结构图或其它描述,手工编写代码 扫描输入中的每个词素,并返回识别到的词法单元信息。 使用词法分析器生成工具(如lex flex)。给出描述词素 的模式,利用工具编译为具有词法分析器功能的代码。 高效且简单。 正则表达式 一种描述词素模式的重要表示方法

Outline 词法分析的作用 词法单元的规约(正则表达式) 词法单元的识别(状态转换图) ●有穷自动机 词法分析器生成工具及设计
Outline 词法分析的作用 词法单元的规约(正则表达式) 词法单元的识别(状态转换图) 有穷自动机 词法分析器生成工具及设计
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 自动语音识别(PPT讲稿)Automatic Speaker Recognition.pptx
- 中国铁道出版社:《局域网技术与组网工程》课程教学资源(PPT课件讲稿)第2章 网络工程系统.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第九章 无线网络.ppt
- 香港浸会大学:MPI - Communicators(PPT讲稿).ppt
- 《单片机应用系统设计技术》课程教学资源(PPT课件讲稿)第7章 单片机外部扩展资源及应用.ppt
- 北京航空航天大学:《数据挖掘——概念和技术(Data Mining - Concepts and Techniques)》课程教学资源(PPT课件讲稿)Chapter 01 Introduction.ppt
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第14章 单片机应用系统抗干扰与可靠性设计.ppt
- 河南中医药大学(河南中医学院):《计算机文化》课程教学资源(PPT课件讲稿)第七章 数据库技术(主讲:王哲).pptx
- 三维计算机视觉 3D computer vision(基于卡尔曼滤波的运动结构).pptx
- 《计算机网络与因特网》课程教学资源(PPT课件)Part VII 广域网(简称WAN), 路由, 和最短路径.ppt
- The Art of Function Design -Measure and RKHS.ppt
- 大庆职业学院:《计算机网络技术基础》课程教学资源(PPT课件讲稿)第2章 数据通信的基础知识.ppt
- 香港浸会大学:C++ as a Better C; Introducing Object Technology.ppt
- 清华大学:《高级计算机网络 Advanced Computer Network》课程教学资源(PPT课件讲稿)Lecture 1 Introduction.pptx
- 《TCP/IP协议及其应用》课程教学资源(PPT课件)第1章 TCP/IP协议基础.ppt
- 香港理工大学:Artificial Neural Networks for Data Mining.ppt
- 安徽理工大学:《Linux开发基础 Development Foundation on Linux OS》课程资源(PPT课件讲稿)Section 4 Perl programming(赵宝).ppt
- 《网上开店实务》课程教学资源(PPT讲稿)学习情境1 网上开店创业策划.ppt
- 东南大学:《C++语言程序设计》课程教学资源(PPT课件讲稿)Chapter 10 Classes A Deeper Look(Part 2).ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 01 Introduction overview.pptx
- 上海交通大学:人工智能的历史和启示——人机对弈作为案例.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第三章 局域网与校园网设计(网络方案设计).ppt
- 广西外国语学院:《计算机网络》课程教学资源(PPT课件讲稿)第10章 应用层协议.ppt
- 《单片机原理及应用》课程教学资源_本科教学大纲汇编(电子信息工程专业).doc
- 上海交通大学:网络安全 Network Security(PPT讲稿,朱浩瑾).pptx
- 清华大学:Top-k String Similarity Search with Edit-Distance Constraints.pptx
- 普林斯顿大学:平衡查找树(PPT讲稿)New Balanced Search Trees.pptx
- 《MATLAB程序设计》课程教学资源(教学大纲)Matlab programming.doc
- 计算机硬件维护(PPT课件讲稿).ppt
- 南京大学:移动Agent系统支撑(PPT讲稿)Agent Mobility Software Agent.pptx
- 《程序设计语言》课程教学资源(PPT课件讲稿)第5章 函数式程序设计语言.ppt
- 《C++程序设计》教学资源(PPT课件讲稿)构造函数和析构函数.ppt
- 《计算机应用基础》工学结合配套课件(PPT讲稿)模块二系统软件操作技术(Windows XP的实用工具).ppt
- 河南中医药大学:《网络技术实训》课程教学资源(PPT课件讲稿)第7讲 网络安全实训(主讲:许成刚).pptx
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第三章 网络营销.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 03 Network Management and Operation(Network Architetures and Standarts).pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)空域滤波 Spatial Filtering.pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第八章 输入输出程序设计.ppt
- 构建互联互通的单位局域网(PPT讲稿).ppt
- 中国科学技术大学:《计算机网络 Computer Networks(计算机通信网)》课程教学资源(PPT课件讲稿)Chapter 06 Internet Protocol.ppt