- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章PL-0编译程序的实现剖析
2.1 PL/0语言描述 2.2 PL/0编译程序的结构 2.3 PL/0编译程序的语法语义分析 2.4 PL/0编译程序的错误处理 2.5 类pcode代码解释器 本章目的:以PL/0为实例,学习编译程序实现的基本步骤和相关技术 PL/0语言简介 PL/0编译程序 PL/0语言 PL/0程序示例 PL/0的语法描述图 PL/0语言文法的EBNF表示 PL/0语言:PASCAL语言的子集 PL/0程序示例 CONST A=10; (* 常量说明部分 *) VAR B,C; (* 变量说明部分 *) PROCEDURE P; (* 过程说明部分 *) VAR D; PROCEDURE Q; VAR X; BEGIN READ(X); D:=X; WHILE X#0 DO CALL P; END; BEGIN WRITE(D); CALL Q; END; BEGIN CALL P; END. PL/0编译程序的总体设计 其编译过程采用一趟扫描方式 以语法、语义分析程序为核心 词法分析程序和代码生成程序都作为一个过程,当语法分析需要读单词时就调用词法分析程序,而当语法、语义分析正确,需要生成相应的目标代码时,则调用代码生成程序。 表格管理程序实现变量,常量和过程标识符的信息的登录与查找。 出错处理程序,对词法和语法、语义分析遇到的错误给出在源程序中出错的位置和与错误 性质有关的编号,并进行错误恢复。 2.3 PL/0编译程序的词法分析 识别的单词: 保留字或关键字:如:BEGIN、 END、 IF、 THEN等 运算符: 如:+、-、*、/、:=、#、=、=等 标识符: 用户定义的变量名、常数名、过程名 常数: 如:10、25、100等整数 界符: 如:‘,’、‘.’ 、‘;’ 、‘(’ 、‘)’等 词法分析过程GETSYM所要完成的任务: 读源程序(getch) 滤空格 识别保留字 识别标识符 拼数 识别单字符单词 拼双字符单词 词法分析过程:GETSYM框图(见教材图2.5) 程序( procedure getsym) 当识别到标识符时先查保留字表 使用状态转换图实现词法分析程序的设计方法 词法分析程序的设计---使用状态转换图实现 2.4 PL/0编译程序语法语义分析 自顶向下的语法分析 递归子程序法 自顶向下的语法分析 VAR A; BEGIN READ(A) END. 程序 分程序 . 变量说明部分 语句 VAR 标识符 ; 复合语句 A BEGIN 语句 END 读语句 READ ( 标识符 ) A 递归子程序法 递归子程序法:对应每个非终结符语法单元,编一个独立的处理过程(或子程序)。语法分析从读入第一个单词开始,由非终结符程序(即开始符)出发,沿语法描述图箭头所指出的方向进行分析。当遇到非终结符时,则调用相应的处理过程,从语法描述图看,也就进入了一个语法单元,再沿当前所进入的语法单元所指箭头方向继续进行分析。当遇到描述图中是终结符时,则判断当前读入的单词是否与图中的终结符相匹配,若匹配,再读取下一个单词继续分析。遇到分支点时,将当前的单词与分支点上多个终结符逐个相比较,若都不匹配时可能是进入下一个非终结符语法单位或是出错。 例:如何用递归子程序法实现表达式的语法分析 因子的语法图 因子 表达式的EBNF〈表达式〉∷=[+|-]〈项〉{(+|-)〈项〉}〈项〉∷=〈因子〉{(*|/)〈因子〉}〈因子〉∷=〈标识符〉|〈无符号整数〉|‘(’〈表达式〉‘)’ 〈表达式〉的递归子程序实现procedure expr;begin if sym in [ plus, minus ] then begin getsym; term; end else term; while sym in [plus, minus] do begin getsym; term; endend; 〈项〉的递归子程序实现procedure term;begin
您可能关注的文档
最近下载
- 2024年上海杉达学院单招职业技能测试题库【word】.docx VIP
- 健康心理学课件.pptx VIP
- WDGL_VI_X线路录波装置说明书.pdf
- 培训课件--付国兵脏腑推拿现状及研究进展.ppt
- 广东省佛山市南海区2022届九年级模拟考试化学试卷.docx VIP
- 2024年中考英语高频词首字母默写与短语默写表及答案.pdf VIP
- 北京市海淀区2024-2025学年四年级上学期期末考试数学试题.pdf
- 辽宁省沈阳市三年(2021-2023)中考语文试卷分类汇编:文学类文本阅读(含解析).docx VIP
- (2025春新版本)部编版七年级语文下册全册教案.doc
- 黑布林阅读初一17《丹的村庄游乐会》中文版.docx
文档评论(0)