- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机实验第一讲
编 译 实 验;一. 概述
1. 源语言: 扩展MINI-PL(简化的Pascal)
语言定义见文法。
(1)不允许标号说明、类型说明和函数说明
(2)不允许指针、集合、记录、文件和子界型
(3)不允许过程作为参数
(4)没有REPEAT、CASE、WITH和GOTO语句; 2. 工具语言: Pascal、C或其它
3. 语法分析采用递归下降分析法
4. 目标代码: P码
5. 编译程序MINI-CP的结构;源程序字符串?.pas;二. 各阶段的输入输出
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;
E’
end;
您可能关注的文档
- 互动媒体学习社区 系统.doc
- 刘彦文-嵌入式系统实践教程-CH4 清华大学出版社.ppt
- 动态链接库.so的编译与使用.doc
- 北京大学生村官:2014年大学生村官考试行测推理判断模拟题.doc
- 北大编译原理讲义chapter6_2.ppt
- 利用IPC$植入木马实验报告.doc
- 华科模电--CH06-5实际集成运算放大器的主要参数和对应用电路的影响.ppt
- 南昌工程学院C语言程序设计基础课件第9章文件.ppt
- 同济大学数字信号处理课件第六章7.ppt
- 在窗体上建立一个文本框、一个图片框和三个命令按钮,把三个命令按.doc
- 小学数学课堂人工智能教学实践与评价体系构建教学研究课题报告.docx
- 高中物理实验课教学中的学生合作学习模式探讨教学研究课题报告.docx
- 高中数学实验教学中的实验资源开发与利用研究教学研究课题报告.docx
- 《绿色交通基础设施建设对城市空气质量改善的短期效应评估》教学研究课题报告.docx
- 初中英语语法教学中的跨学科教学与学生应用能力培养研究教学研究课题报告.docx
- 高中数学思维训练教学资源动态定价与优化配置策略研究教学研究课题报告.docx
- 金融科技监管中的金融科技企业合规性监管政策优化研究教学研究课题报告.docx
- 《量子通信技术在金融信息安全传输中的性能优化研究》教学研究课题报告.docx
- 小学课外阅读指导课程效果评价研究教学研究课题报告.docx
- 基于人工智能的小学科学智能教育平台用户科学探究能力培养策略教学研究课题报告.docx
文档评论(0)