温故知新compiler-principle02编译器原理.pptx

温故知新compiler-principle02编译器原理.pptx

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

温故知新编译原理的内容及学习意义翻译器、编译器的定义编译器的阶段划分及前端、后端的概念“遍”的概念

第二章词法分析本章内容词法分析器:把构成源程序的字符流翻译成记号流,还完成和用户接口的一些任务围绕词法分析器的自动生成展开介绍正规式、状态转换图和有限自动机概念??词法分析器语法分析器符号表记号取下一个记号源程序

词法分析器的功能:词法分析器记号(token)流源代码

2.1词法记号及属性2.1.1词法记号、模式、词法单元词法单元:又称单词,是源程序中的字符串。词法记号:满足某种规则的词法单元,采用同一种记法——词法记号。该规则称为模式。模式:描述词法单元与词法记号对应关系的规则。是描述源程序中某个记号的词法单元集合的规则。源程序字符流顺序组合词法单元词法记号模式

2.1词法记号及属性2.1.1词法记号、模式、词法单元源程序字符流顺序组合词法单元词法记号模式例:varcount:integer;count=5;词法单元

2.1词法记号及属性2.1.1词法记号、模式、词法单元词法记号 词法单元例举 模式的非形式描述var var varfor for forrelation ,=,=,… 或=或=或…id sum,count,D5 由字母开头的字母数字串num 3.1,10,2.8E12 任何数值常数literal “seg.error” 引号“和”之间的任意字符 串,但引号本身除外常见记号及模式的例子:

2.1词法记号及属性2.1.1词法记号、模式、词法单元词法记号 词法单元例举 模式的非形式描述relation ,=,=,… 或=或=或…id sum,count,D5 由字母开头的字母数字串名词 大连软件大黑山 表示名称的词连词 和与或 和与或….词法记号 词法单元例举 模式的非形式化描述词法记号 词法单元例举 模式的非形式描述中国人 江泽民毛泽东 具有中国国籍的人美国人 布什克林顿 具有美国国籍的人

2.1词法记号及属性历史上词法定义中的一些问题忽略空格带来的困难 DO8I?3.75 DO8I?3.75DO8I?3,75关键字是否保留 IFTHENTHENTHEN=ELSE;ELSE…

2.1词法记号及属性2.1.2词法记号的属性position:=initial+rate*60的记号和属性值: ?id,指向符号表中position条目的指针? ?assign_op,? ?id,指向符号表中initial条目的指针? ?add_op,+? ?id,指向符号表中rate条目的指针? ?mul_op,*? ?num,整数值60?

2.1词法记号及属性2.1.2词法记号的属性练习题(要求使用伪代码给出算法): 编写一个程序,用于统计文件中单词的总数,不同单词的数目。eg:IloveDalianandIloveDLUT单词总数:7不同单词数目:5

2.1词法记号及属性2.1.3词法错误词法分析器对源程序采取非常局部的观点,难以发现下面的错误 fi(a==f(x))…但是也有例外,如在实数是a.b格式下,可以发现下面的错误 123.

2.1词法记号及属性2.1.3词法错误恢复策略“紧急方式”错误修补尝试删除一个多余的字符插入一个遗漏的字符用一个正确的字符代替一个不正确的字符交换两个相邻的字符

2.2词法记号的描述与识别2.2.1串和语言字母表:符号的有限集合,例:?={0,1}串:符号的有穷序列,例:0110,?语言:字母表上的一个串集 {?,0,00,000,…},{?},?句子:属于语言的串字母组合串语言集合集合字母表词法单元记号模式长度为0的空串

2.2词法记号的描述与识别2.2.1串和语言串的运算连接 xy,s?=?s=s积(指数) s0为?,si为si-1s(i0)

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∪…例2.2(p14)L:{A,B,…,Z,a,b,…,z},D:{0,1,…,9}L∪D,LD,L6,L*,L(L∪D

文档评论(0)

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

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

1亿VIP精品文档

相关文档