ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:306KB ,
资源ID:856580      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-856580.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理实验指导书.doc)为本站会员(创****公)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

编译原理实验指导书.doc

1、编译原理实验指导书前 言编译原理是计算机专业的主干课和必修课,由于这门课程相对抽象且内容较复杂,一直是比较难学的一门课程。在编译原理的学习过程中,实验非常重要,只有通过上机实验,才能使学生对比较抽象的课程内容产生一个具体的感性认识。本书实验环境主要为 C 环境,在 C 环境下手动生成词法分析器及语法分析器,通过这些实验,能使学生对这些部份的工作机理有一个详细的了解。由于这门课实验难度较大,所以希望在实验前学生要做好预习工作。在上机前写好实验预习报告。- i -目录实验一 手工生成 PL/0语言词法分析器 .1实验二 用算符优先分析法进行表达式分析 .5- 1 -实验一 手工生成 PL/0 语言

2、词法分析器实验名称:手工生成 PL/0 语言词法分析器实验目的:编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。 (遇到错误时可显示“Error”,然后跳过错误部分继续显示)实验原理:词法分析过程1、PL/0 的词法分析程序 Getsym(图 1)是一个独立的过程,它把输入的字符串形式的源程序分割成一个个单词符号。为此 PL/0 编译程序设置了三个全程量的公用单元如下:Sym:存放每个单词的类别,用内部编码形式表示;Id:存放用户所定义的标识符的值,即标识符字符串的机内表示;Nu

3、m:存放用户定义的数。如果我们把基本字、运算符、界符称为语言固有的单词,而对标识符、常数称为用户定义的单词,那么经词法分析程序分出的单词,对固有的单词只给出类别存放在 sym 中,而对用户定义的单词(标识符或常数)既给出类别又给值,其类别存放在 sym 中,值放在id 或 num 中,全部单词种类由编译程序定义的纯量类型 sumbol 给出,也可称为语法的词汇表。如下面提到的 ifsym, thensym,ident,number 均属 symbol 中的元素。因此词法分析程序 Getsym 将完成下列任务:滤空格:空格在词法分析时是一种不可缺少的界符,而在语法分析时则是无用的,必须滤掉;(1

4、) 识别保留字:设有一张保留字表。对每个字母打头的字母、数字串要查此表。若查到则为保留字,将对应的类别放在 sym 中,如 IF 对应值 IFSYM,THEN 对应为 THENSYM。若查不到,则认为是用户定义的标识符;(2) 识别标识符:对用户定义的标识符将 IDENT 放在 SYM 中,标识符本身的值放在ID 中;(3) 拼数:当所取单词是数字时,将数的类别 NUMBER 放在 SYM 中,数值本身的值存放在 NUM 中;(4) 拼复合词:对两个字符组成的算符,如=,:=,、=、 - * / ( ; ,- 6 -,!,!,=; /算符优先矩阵,其中!表示两算符无优先关系int OPNDMA

5、X;/操作数栈SYMBOL OPTRMAX; /算符栈int topd,topr;/ 两栈的指针void PushOpnd (int a);int PopOpnd (void);int EmptyOpnd (void);int GetTopOpnd (void);void PushOptr (SYMBOL a);SYMBOL PopOptr (void);int EmptyOptr (void);SYMBOL GetTopOptr (void);/上面为栈函数int Position(SYMBOL c);/将 c 映射至数组下标int IsOpnd(SYMBOL c);/判断 c 是否是操作数

6、int IsOptr(SYMBOL c);/判断 c 是否是操作符char Precede(SYMBOL c1,SYMBOL c2);/查算符优先矩阵,求出 c1 和 c2 之间的优先矩阵int Operate(int a,int b,SYMBOL o);/求出 a o bchar First();/算符优先分析函数2部份函数实现的源代码(略 )实验成果:1.程序源代码(以报告形式提交 );2.已经测试通过的测试数据 3 组(全部存在一个文本文件中附在报告后面,以“第一组输入/ 输出/第二组输入/输出/第三组输入/输出” 的顺序存放) ;3.实验报告:(1)功能描述:该程序具有什么功能?(2)程序结构描述:函数调用格式、参数含义、返回值描述、函数功能;函数之间的调用关系图、程序总体执行流程图(参考课本第二章) 。(3)实验过程记录:出错次数、出错严重程度、解决办法摘要。(4)实验总结:你在编程过程中花时多少?多少时间在纸上设计?多少时间上机输入和调试?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?- 7 -你的收获有哪些?

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。