- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第二章词法分析和语法分析(一)
提纲
◼词法分析概要
◼正则表达式
◼有限状态自动机
◼从NFA到DFA的转换
◼状态最小化算法
一个实例
词法分析
position=initial+rate*60
id,1=,id,2+,id,3*,number,
4
词法分析器作用
◼词法分析是读入源程序的输入字符、将它们组成词素,生成并输
出一个词法单元序列,每个词法单元对应于一个词素
◼常见的做法
由语法分析器调用,需要的时候不断读取、生成词法单元
可以避免额外的输入输出
◼在识别出词法单元之外,还会完成一些不需要生成词法单元的简
单处理,比如删除注释、将多个连续的空白字符压缩成一个字符
等
词法分析相关概念
◼词素(Lexeme)
源程序中的字符序列,它和某类词法单元的模式匹配,被词
法分析器识别为该词法单元的实例。
◼词法单元(Token):
包含单元名(Token-name)和可选的属性值(attribute-
value)
单元名是表示某种词法单位抽象符号。语法分析器通过单元
名即可确定词法单元序列的结构。
词法单元示例
词法单元的属性
◼一个模式匹配多个词素时,必须通过属性
来传递附加的信息。属性值将被用于语义
分析、代码生成等阶段。
◼不同的目的需要不同的属性。因此,属性
值通常是一个结构化数据。
◼词法单元id的属性
词素、类型、第一次出现的位置、…
词法单元示例(名和属性值)
Specification
词素
第一步:如何描述词素?
词法单元
模式(Pattern)
•词法单元对应的词素可能
具有的形式
•可以用正则表达式来表示
提纲
◼词法分析概要
◼正则表达式
◼有限状态自动机
◼从NFA到DFA的转换
◼状态最小化算法
相关概念
◼字母表:一个有限的符号集合
二进制{0,1}
ASCII
Unicode
典型的字母表包括字母、数位和标点符号
◼串:字母表中符号组成的一个有穷序列
串s的长度|s|
空串ε,长度为0的串
◼语言:给定字母表上一个任意的可数的串的集合
语法正确的C程序的集合,英语,汉语
相关概念
◼和串有关的术语(banana)
前缀:从串的尾部删除0个或多个符号后得到的串
(ban、banana、ε)
后缀:从串的开始处删除0个或多个符号后得到的串
(nana、banana、ε)
子串:删除串的某个前缀和某个后缀得到的串
(banana、nan、ε)
真前缀、真后缀、真子串:既不等于原串,也不等于空
串的前缀、后缀、子串
子序列:从原串中删除0个或者多个符号后得到的串
(baan)
相关概念
◼串的运算
连接(concatenation):x和y的连接时把y附加
到x的后面形成的串,记作xy。
◼x=dog,y=house,xy=doghouse
您可能关注的文档
- Python程序设计基础-教案.docx
- Python程序设计基础-教学日历.doc
- Python程序设计基础课后习题答案.docx
- Python程序设计基础-教学课件 第1章 Python语言概述.pptx
- Python程序设计基础-教学课件 第2章 基础语法.pptx
- Python程序设计基础-教学课件 第3章 程序控制结构.pptx
- Python程序设计基础-教学课件 第4章 组合数据类型.pptx
- Python程序设计基础-教学课件 第5章 字符串.pptx
- Python程序设计基础-教学课件 第6章 函数.pptx
- Python程序设计基础-教学课件 第7章 文件和异常处理.pptx
- Android应用程序开发 课件 第1章 绪论.pptx
- Android应用程序开发 课件 第2章 Android应用项目的开发框架.pptx
- Android应用程序开发 课件 第3章 Android核心组件——Activity.pptx
- Android应用程序开发 课件 第4章 Android组件纽带—Intent.pptx
- Android应用程序开发 课件 第5章 Android核心组件—BroadcastReceiver.pptx
- Android应用程序开发 课件 第6章 Android核心组件—Service.pptx
- Android应用程序开发 课件 第7章 Android 的数据存储.pptx
- Android应用程序开发 课件 第8章 Android核心组件—ContentProvider.pptx
- Android应用程序开发 课件 第9章 Android界面编程.pptx
- Android应用程序开发 课件 第10章 Android的网络开发技术.pptx
最近下载
- 零碳开关站设计与评价导则.pdf VIP
- 中职英语高教版(2023修订版)基础模块3三单元《Grammar》课件.pptx VIP
- 第3课 中古时期的西欧 课件 中职高教版世界历史.ppt
- 贯彻落实八项规定精神情况《工作总结》(参考格式).doc VIP
- STM32嵌入式技术与应用:电子时钟设计与实现.pptx VIP
- 2025河南民航发展投资集团有限公司招聘28人笔试模拟试题及答案解析.docx VIP
- T_CCUA 048-2025 政务信息系统运行维护费用定额测算方法.pdf VIP
- 第四章第二节种群数量的变化.ppt VIP
- 国有独资公司.docx VIP
- 村级太阳能路灯日常维护管理.docx VIP
文档评论(0)