- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第4章词法分析4.1词法分析的基本概念4.2词法分析程序的设计4.3算术常数处理机的设计4.1词法分析的基本概念4.1.1单词的分类与识别1.单词的分类按单词的语法功能可分为:4.1.1单词的分类与识别2.单词的识别4.1.2单词的机内表示程序设计语言的单词不但类别不同,而且长短不一,机内表示可以使:①长短统一;②语法、语义信息分开。目前,大多数采用如下二元式形式:4.1.2单词的机内表示4.2词法分析程序的设计TOKEN序列4.2.2一个简单词法分析器的实现※一个简单识别器的设计※一个简单词法分析程序设计4.2.3词法分析结果示例【例4.1】Pascal片段:4.2.3词法分析结果示例【注】(1)KT[k],PT[p]–静态表(系统设定);(2)IT[i],CT[c]–动态表(随源程序变化);4.2.3词法分析结果示例经过扫描器,依次输出TOKEN序列:4.3算术常数处理机的设计带有翻译功能的自动机称为处理机;其结构可分为两个部分:4.3.2翻译器设计4.3.2翻译器设计2.状态节点处(翻译)动作函数设计:设:在状态i节点处的语义动作为qi;※常数处理机程序框图:※算术常数处理过程示例:第4章词法分析**编译程序的设计原理与实现如何让计算机
认识、理解和执行
高级程序设计语言?※词法分析程序又称扫描器,任务有两个:(1)识别单词——从用户的源程序中把单词分离出来;(2)翻译单词——把单词转换成机内表示,便于后续处理。【内容提要】标识符——用户给一些变量起的名字;常数——以自身形态面对用户和系统;特殊符——(1)关键字——系统内部定义,具有固定的意义,通常用来区分语法单元;(2)界符——单字符界符——+-*/,;:=…双字符界符——====/**/…字母开头——关键字或标识符;数字开头——数值型常量;‘或“开头——字符型常量或字符串常量;其它——多数以自身形态识别之,如+,:=,…※如何区别关键字和标识符?现在,大多数编译程序使用“保留字”,即关键字不能用作标识符。系统预先造好关键字表,拼好的字符串,先查“关键字”表,查到了,视为关键字,否则,视为标识符。值类语法信息,即单词的分类码。语义信息,如:数组维数,上下界,类型等;TOKEN:·标识符:TOKEN:IT[i]符号表??·常数:TOKEN:CT[c]常数表??·关键字:TOKEN:KT[k]关键字表?·界符:TOKEN:PT[p]界符表i·名字…c·123k·Beginp·=※TOKEN的一种设计方案:源程序TOKEN序列(字符串)(单词串)扫描器语法分析器扫描器(2)作为语法分析器的子程序的扫描器(1)作为独立一遍的扫描器4.2.1词法分析程序按功能划分getword命令(语法分析后)TOKEN源程序下页:一个简单识别器的设计(1)识别器---识别单词的有限自动机(2)翻译器---根据有限自动机所识别出的对象,完成从单词串到单词的TOKEN串的翻译
文档评论(0)