编译原理(第2版)-陈意云-chapter2.pptVIP

编译原理(第2版)-陈意云-chapter2.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国科大 第二章 词法分析 本章内容 词法分析器:把构成源程序的字符流翻译成记号流,还完成和用户接口的一些任务 围绕词法分析器的自动生成展开 介绍正规式、状态转换图和有限自动机概念 2.1 词法记号及属性 2.1.1 词法记号、模式、词法单元 记号名 词法单元例举 模式的非形式描述 if if 字符i, f for for 字符f, o, r relation < , <= , = , … < 或 <= 或 = 或 … id sum, count, D5 由字母开头的字母数字串 number 3.1, 10, 2.8 E12 任何数值常数 literal “seg. error” 引号“和”之间的任意字符 串,但引号本身除外 2.1 词法记号及属性 历史上词法定义中的一些问题 忽略空格带来的困难 DO 8 I ? 3. 75 DO8I ? 3. 75 DO 8 I ? 3, 75 关键字不保留 IF THEN THEN THEN=ELSE;ELSE … 关键字、保留字和标准标识符的区别 保留字是语言预先确定了含义的词法单元 标准标识符也是预先确定了含义的标识符,但程序可以重新声明它的含义 2.1 词法记号及属性 2.1.2 词法记号的属性 position = initial + rate ? 60的记号和属性值: ?id,指向符号表中position条目的指针? ?assign _ op? ?id,指向符号表中initial条目的指针? ?add_op? ?id,指向符号表中rate条目的指针? ?mul_ op? ?number,整数值60? 2.1 词法记号及属性 2.1.3 词法错误 词法分析器对源程序采取非常局部的观点 难以发现下面的错误 fi (a == f (x) ) … 在实数是a.b格式下,可以发现下面的错误 123. 紧急方式的错误恢复 错误修补 2.2 词法记号的描述与识别 2.2.1 串和语言 字母表:符号的有限集合, 例:? = {0, 1} 串:符号的有穷序列,例:0110, ? 语言:字母表上的一个串集 {?, 0, 00, 000, …}, {?}, ? 句子:属于语言的串 串的运算 连接 xy,s? = ?s = s 积(指数) s0为?,si为si -1s(i > 0) 2.2 词法记号的描述与识别 语言的运算 和:L ? M = {s | s ?L 或 s ? M } 连接:LM = {st | s ? L 且 t ? M} 指数:L0是{? },Li是Li -1L 闭包:L? = L0 ? L1 ? L2 ? … 正闭包: L+ = L1 ? L2 ? … 例 L: { A, B, …, Z, a, b, …, z }, D: { 0, 1, …, 9 } L ? D, LD, L6, L*, L(L ? D )*, D+ 2.2 词法记号的描述与识别 2.2.2 正规式 正规式用来表示简单的语言,叫做正规集 正规式 定义的语言 备注 ? {?} a {a} a ? ? (r) | (s) L(r)∪L(s) r和s是正规式 (r)(s) L(r)L(s) r和s是正规式 (r)* (L(r))* r是正规式 (r) L(r) r是正规式 ((a) (b)*)| (c)可以写成ab*| c 2.2 词法记号的描述与识别 正规式的例子 ? = {a, b} a | b {a, b} (a | b) (a | b ) {aa, ab, ba, bb} aa | ab | ba | bb {aa, ab, ba, bb} a* 由字母a构成的所有串集 (a | b)* 由a和b构成的所有串集 复杂的例子 ( 00 | 11 | ( (01 | 10) (00 | 11) ? (01 | 10) ) ) ? 句子:01001101000010000010111001 2.2 词法记号的描述与识别 2.2.3 正规定义 对正规式命名,使表示简洁 d1 ? r1 d2 ? r2 . . . dn ? rn 各个di的名字都不同 每个ri都是? ?{d1, d2, …, di-1 }上的正规式 2.2 词法记号的描述与识别 正规定义的例子 C语言的标识符是字母、数字和下划线组成的串 letter_ ? A | B | … | Z | a | b | … | z | _ digit

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档