网站大量收购独家精品文档,联系QQ:2885784924

计算机实验第一讲【荐】.ppt

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

编 译 实 验 任课教师: 王晓斌 806教研室 主楼中338 一. 概述 1. 源语言: 扩展MINI-PL(简化的Pascal) 语言定义见文法。 (1)不允许标号说明、类型说明和函数说明 (2)不允许指针、集合、记录、文件和子界型 (3)不允许过程作为参数 (4)没有REPEAT、CASE、WITH和GOTO语句 2. 工具语言: Pascal、C或其它 3. 语法分析采用递归下降分析法 4. 目标代码: P码 5. 编译程序MINI-CP的结构 二. 各阶段的输入输出 1. 词法分析 2. 语法分析 3. 语义分析 4. 优化 5. 目标代码生成 三. 数据结构 1. 二元式文件?.dyd (1)二元式形式: 单词符号?种别 (2)每行后加一 “???...?EOLN?34” (3)文件结尾加 “???...?EOF?37” 2. 错误信息文件?.err (1)错误信息格式 ***LINE:行号??错误性质 (2)注意: 进入每一阶段, 首先打开?.err, 如果无错误, 则?.err为空。 3. ?.dys 同?.dyd 4. 变量表 变量名vname: char(16) 分类vkind: 0..1(0—变量、1—形参) 变量类型vtype: types 变量层次vlev: int 变量在变量表中的位置vadr: int(相对第一个变量而言) types=(ints,reals,bools,chars,arrays) 5. 过程名表 过程名proname: char(16) 层次prolev: int 直接外层proc: char(16) 第一个变量的位置firstvar: int 最后一个变量的位置lastvar: int 地址proadr: int 参数个数parnum: int 第一个参数的位置firstpar: int 6. 数组名表 数组名arrname: char(16) 基类型: types 下界low: int 上界high: int 7. 四元式表 (oprd, op1, op2, result) oprd——整数码 op1——第一操作数 op2——第二操作数 result——结果 op1、op2、result可用二元组表示: (类型,值/地址) 8. 目标代码——P码 参见目标代码(P码)指令表 四. 实现难点 1. 文件名的分解 多数文件均和源文件同名, 仅扩展名不同。 2. 词法分析时, 注意行尾和文件尾。 3. 设一个总的变量名表, 查、填表时注意嵌套,也可能涉及到过程名表。 4. 语法错分类: (1)缺少符号错; (2)符号匹配错; (3)符号无定义或重复定义。 5. 递归下降分析时, 必须先消除左递归。 6. 递归下降分析时, 跟踪符号的位置 当进入某过程时, 其第一个符号必须已经读出; 退出该过程时, 必须读出该语法成分的右界符。 例: G(E) E→E+T│T T→T*F│F F→(E) │i 消除左递归: E→T│E’ E’→+TE’│ε T→FT’ T’→*FT’│ε  F→(E)│i 过程match:匹配单词符号,并读入下一符号 变量lookahead:即将处理但尚未处理的符号 procedure match(t:token); begin if lookahead=t then lookahead=nexttoken else error end; procedure E; begin T;

文档评论(0)

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

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

1亿VIP精品文档

相关文档