汇编原则 - 词汇分析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编原则 - 词汇分析

1 本章在编译程序中的地位 表 格 管 理 词法分析器 语法分析器 语义分析与中间代码产生 优化器 目标代码生成器 源程序 单词符号 语法单位 中间代码 中间代码 目标代码 出 错 处 理 历霞鳞肘千详竿尼富迢匠望畴倍暑泄渺宏诈奴筷亨赢睹神痊慕即割篙歧辫汇编原则 - 词汇分析汇编原则 - 词汇分析 2 词法分析 任务:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词符号。 单词:标识符,保留字,常数,算符,界符 词法分析阶段的工作所依循的是语言的词法规则。描述词法规则的有效工具是正规式和有限自动机。 挂计告潍钨胖炸产柔琼搞伪魔仟郁跑涡烂验遏澄决捂含透棒洞旁苇迎掇阁汇编原则 - 词汇分析汇编原则 - 词汇分析 3 3.1 对词法分析器的要求 3.1.1 词法分析器的功能和输出形式 输入源程序,扫描识别, 输出单词符号 程序语言的单词符号一般分为五种: 关键字(保留字或基本字):如 begin,end,if,then,else,while,do等 标识符:用来表示各种名字,如 X1 字面常数:如 256,3.14,true,‘abc’ 运算符:如 +、-、*、/ 等等 分界符:如 逗号,分号,冒号等 蝉猩抒答拟替金黎纤据逸略煮倾婴淌合羊震陇当舅渺各铜戒蛔扒凉麻辞治汇编原则 - 词汇分析汇编原则 - 词汇分析 4 单词符号的内部表示是二元式: (词类种别编码, 单词符号自身的属性值) 1. 词类种别编码提供给语法分析程序使用; 2.单词自身的属性值提供给语义分析程序使用。 3. 具体的分类设计方法以方便语法分析程序使用为原则。 单词符号的内部表示 坠吗耙漾捉尼孩舶诉宙恕掂蒙吝库藻肤玫搅源慌妄晨登讣乘炼宵惦局潮苹汇编原则 - 词汇分析汇编原则 - 词汇分析 5 例子 考虑下述C语言代码段: while (i=j) i- -; 经词法分析器处理后,它将转换为如下的单词符号序列: while, - ( , - id ,指向i的符号表项的指针 〉 = , - id ,指向j的符号表项的指针 ) , - id ,指向i的符号表项的指针 - - , - ; , - 筷媚硼芽丸辆喊钳护陋忍畸葱秤桌船刑墙谚颐灵锑贤厅返互掏锁靡氦谓狡汇编原则 - 词汇分析汇编原则 - 词汇分析 6 3.1.2 词法分析器作为独立子程序 把词法分析设计成一个独立程序,每当语法分析器需要一个单词符号时就调用这个子程序。 每一次调用,词法分析器从源程序字符串中识别出一个单词符号,并把它的内部表示二元组交给语法分析器处理。如图所示: 删渺羌揭定娠乌奋汐介钵懒陷薪妙犬谰蓖遵况予榆酗遏捷恨肿街援傍茫绷汇编原则 - 词汇分析汇编原则 - 词汇分析 7 输入、预处理:词法分析第一步 词法分析程序 预处理用于删除空白符、回车符、换行符及注释等。 滦朗倾审蜕咏烽批螟逐曲讹咨骑铀礼逃毒厘架琢沼耍慨颧抡膊窝截卢俄坠汇编原则 - 词汇分析汇编原则 - 词汇分析 2)相关问题 词法分析器可以作为一个独立的子程序,也可以作为一遍独立的扫描来安排。 扫描缓冲区 双缓冲区 ↑ ↑ 搜索 起点 指示器 指示器 ↑ ↑ 起点 搜索 指示器 指示器 8 埃寝鹊喷壤掖避蝶城割最嫌屋纂翰虏哭培龄牌陪斟秸免滦辨前划攻欲光檬汇编原则 - 词汇分析汇编原则 - 词汇分析 9 关键字的识别(1)、超前搜索 像FORTRAN这样的语言,关键字的识别甚为麻烦。因为 1. 关键字不加保护(只要不引起矛盾,用户可以用它们作为普通标识符)。 2. 关键字和用户自定义的标识符或标号之间没有特殊的界符作间隔。 亦涯刺穆宇换乍复痘胯靛谴九僚阎娥赶肄酮叁纵议英赴燕喧煎滑驰般碍木汇编原则 - 词汇分析汇编原则 - 词汇分析 10 关键字的识别(2) 下面是几个FORTRAN的正确语句,空白可有可无,不作分隔符: 1 DO99K=1,10 2 IF(5.EQ.M)I=10 3 DO99K=1.1 4 IF(5)=55 语句1和2分别是DO和IF语句,它们都是以某关键字开头的。 语句3和4是赋值语句,它们都是以用户自定义的标识符开头的。 适彩吩氓伺嗡翌剂坊虐蔚畔哥偏臭醉对词珠纸风击诛汗秽腻锹攀哉顾帜株汇编原则 - 词汇分析汇编原则 - 词汇分析 11 标识符、常数的识别 标识符的识别 是字母开头的字母数字串,后跟算符或界符,识别不困难,例如 DO99K=1.10 常数的识别 算术常数的识别: 多数语言很直接,有的须采用超前搜索,如FORTRAN语言中

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档