第02-03讲-词法-I-new选读.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析 编译原理 大连理工大学软件学院 2 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器 3 词法分析器的功能: 4 本章内容 词法分析器:把构成源程序的字符流翻译成记号流,还完成和用户接口的一些任务 介绍正规式、状态转换图和有限自动机概念 Lex与词法分析器的自动生成   词法分析器 语法分析器 符号表 记号 取下一个记号 源程序 第二章 词法分析 5 词法分析:编译第一步 看一个中文的句子 黄蓉 是 古代的 才女 代词 动词 形容词 名词(短语) 通过分词操作,把句子以单词或者词组为单位进行划分,得到一个句型。 6 C语言的语句例子 词法单元 又称单词,是编程语言中合法的字符串 词法记号 满足某种规则的词法单元,采用同一种记法——词法记号。 L1 : x = ID COLON ID ASSGN y2 + 12 ; ID PLUS INT SEMI-COL 编译的词法分析做的工作类似于分词, 把原始的字符串流形式的程序文本转换为词法记号流的形式 例子中 哪些是词法单元? 7 词法分析:编译第一步 看一个中文的句子 你们 是 优秀的 大工学子 代词 动词 形容词 名词(短语) 通过分词操作,把句子以单词或者词组为单位进行划分,得到一个句型。 8 2.1词法单元与词法记号 满足一个给定规则的词法单元,被记为一个词法记号 词法单元 词法记号 模式 古代的 形容词 现代的 漂亮的 潇洒的 9 词法模式 C语言的标识符 ? x2, 12, _12, _abc 哪些是合法的C标识符? C语言标识符的规则(模式): 首字符必须是_或者字母,由_、字母或数字组成的字符串 10 词法记号 词法单元例举 模式的非形式描述 STRUCT struct struct FOR for for RELOP , = , = , … 或 = 或 = 或 … ID sum, _12, _x _或字母开头的 由_、字母和数字组成的串 NUM 3.1, 10, 2.8 E12 任何数值常数 LITERAL “seg. error” 引号“和”之间的任意字符 串,但引号本身除外 常见记号及模式的例子: 简单的一对一模式 相对复杂一点的模式 词法模式 11 2.1.1 词法记号、模式、词法单元 词法记号 词法单元例举 模式的非形式描述 relation , = , = , … 或 = 或 = 或 … id sum, count, D5 由字母开头的字母数字串 名词 大连 软件 大黑山 表示名称的词 连词 和 与 或 和 与 或 …. 词法记号 词法单元例举 模式的非形式化描述 词法记号 词法单元例举 模式的非形式描述 中国人 胡锦涛 毛泽东 具有中国国籍的人 美国人 奥巴马 克林顿 具有美国国籍的人 2.1 词法记号及属性 12 2.1 词法记号及属性 词法分析器 语法分析器 符号表 记号 取下一个记号 源程序 存在的意义? 13 2.1 词法记号及属性 如果简单地把词法记号流传给语法分析器,会产生什么后果? 语义被完全摒弃,只剩下一个语法结构 黄蓉是美女 Pronoun Verb Noun 翻译官 说了什么呀???? 郭靖是大侠 我爱编译器 14 2.1 词法记号及属性 每个词法记号具有一定的含义(属性) 第一个ID,名称是L1, 表示的是标号(Label) 第二个ID,名称是x, 表示的是一个变量,类型是int 第三个ID,名称是y2, 表示的是一个变量,类型是int L1 : x = ID COLON ID ASSGN y2 + 12 ; ID PLUS INT SEMI-COL 15 position := initial + rate * 60的记号和属性值: id,指向符号表中position条目的指针 assign _ op  id,指向符号表中initial条目的指针 add_op  id,指向符号表中rate条目的指针 mul_ op  num,整数值60 2.1 词法记号及属性 16 课后练习 prog1: 编写一个程序,用于统计文件中单词的总数,不同单词的数目。 eg: I love Dalian and I love DLUT 单词总数:7 不同单词数目:5 17 2.1 词法记号及属性 2.1.3 词法错误 词法分析器对源程序采取非常局部的观点,难以发现下面的错误 fi (a == f (x) ) … 例外:如在实数是a.b格式下,可以发现下面的错误 123. 18 2.

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档