编译原理讲义方案.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type symbol=(nul,ident,number,plus,minus,times,slash,oddsym, eql,neq,lss,leq,gtr,geq,lparen,rparen,comma, semicolon,period,becomes,beginsym,endsym,ifsym, thensym,whilesym,writesym,readsym,dosym,callsym, constsym,varsym,procsym); sym:symbol; (*last symbol read*) * * * * * * * * * * * * 如何用递归子程序法来实现表达式的语法分析 表达式的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; end end; * 如何用递归子程序法来实现表达式的语法分析 〈项〉的实现 procedure term; begin factor; while sym in [ times, slash ] do begin getsym; factor; end end; * 如何用递归子程序法来实现表达式的语法分析 〈因子〉的实现 procedure factor; begin if sym # ident then begin if sym # number then begin if sym = ‘(‘ then begin getsym; expr; if sym = ‘)’ then getsym else error end else error end end end; 程序 pl0 分程序 block 语句 statement 条件 condition 表达式expression 项 term 因子 factor PL/0语法调用关系图 编译程序总体流程图 * 程序BLOCK过程的流程图 见课本18页 * 语义分析与处理 说明部分的分析 对每个过程说明的对象(变量,常量和过程)造名字表 填写所在层次,标识符的属性和分配的相对位置。标识符的属性不同时,所需填入的信息也不同。登录信息由ENTER过程完成。 表格管理 过程体的分析 CONST A=35,B=49; VAR C,D,E; PROCEDURE P; VAR G 表格管理 名字 类型 层次/值 地址 存储空间 变量定义语句的处理 if sym=varsym then begin getsym; repeat vardeclaration; while sym=comma do begin getsym; vardeclaration end; if sym=semicolon then getsym else error(5) until symident; end; * 变量定义语句的处理 procedure vardeclaration; begin if sym=ident then begin enter(variable); getsym end else error(4) end(*vardeclaration*); * 过程ENTER的实现 procedure enter(k:obj

文档评论(0)

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

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

1亿VIP精品文档

相关文档