没有合适的资源?快使用搜索试试~ 我知道了~
编译原理实验指导编译原理实验指导编译原理实验指导 编译原理实验指导编译原理实验指导
资源推荐
资源详情
资源评论
编 译 原 理
实 验 指 导 书
《编译原理》课程组
2003年12月
1
概 述
一、本课程实践的目的和任务
编译原理是一门实践性很强的课程,只有通过实践,才能真正掌握。
实际的编译程序是十分复杂的,有时由多达十几万条指令组成。为此,编译原
理的实践教学,采用简化编译过程的办法,选择最关键的3个环节──词法分析、语
法分析(包括语义处理、产生无优化的目标指令)、连接调试,进行编程和调试训
练。每个环节作为一个实践课题。先分别编程调试,再连接在一起总调。
二、实践方法
任何一个实用的高级语言,其语法都比较复杂,如选其作为源语言,很难实践
全过程。故本实践将定义一个简化的语言── C/C++ 语言的一个子集作为源语言,
分3个课题,设计调试出它的编译程序。前后贯穿这一条主线进行实践。每次都可
利用课余时间编程,利用上机时间进行输入和调试。
建议使用 C/C++ 语言或C语言。
三、实践报告的规范和要求
每个课题完成后写出实践报告。实践报告包括程序设计时考虑的算法和方法;
调试过程中出现的问题和解决的措施;打印出程序清单和调试时所用的源程序。
四、简化的 C/C++ 语言子集的定义
⒈ C/C++ 语言子集的语法定义
〈 C/C++ 子集程序〉→〈变量说明〉〈分程序〉。
〈变量说明〉→〈空〉|VAR〈变量表〉:INTEGER;
〈变量表〉→〈变量〉|〈变量〉,〈变量表〉
〈变量〉→〈标识符〉
〈分程序〉→BEGIN〈语句组〉END
〈语句组〉→〈语句〉|〈语句〉;〈语句组〉
〈语句〉→〈赋值语句〉|〈条件语句〉|〈WHILE语句〉|〈分程序〉
〈赋值语句〉→〈变量〉:=〈算术表达式〉
〈条件语句〉→IF〈布尔表达式〉THEN〈语句〉ELSE〈语句〉
2
〈WHILE语句〉→WHILE〈布尔表达式〉DO〈语句〉
〈算术表达式〉→〈项〉|〈算术表达式〉+〈项〉|〈算术表达式〉-〈项〉
〈项〉→〈初等量〉|〈项〉*〈初等量〉|〈项〉/〈初等量〉
〈初等量〉→〈无符号数〉|〈变量〉|(〈算术表达式〉)
〈关系表达式〉→〈算术表达式〉〈关系运算符〉〈算术表达式〉
〈标识符〉→〈字母〉|〈标识符〉〈字母〉|〈标识符〉〈数字〉
〈无符号数〉→〈数字〉|〈无符号数〉〈数字〉
〈关系运算符〉→〈|〈= | =| 〉=| 〉|〈〉
〈字母〉→ A│B│C│D│E│F│G│H│I│J│K│L│M│N│O│P│Q│R│S│T│
│U│V│W│X│Y│Z
〈数字〉→ 1│2│3│4│5│6│7│8│9│0
实验1 词法分析
介绍词法分析程序的编程与调试。(2学时)
一、目的与要求
1)目的
通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课
堂教学的理解;提高词法分析方法的实践能力。
2)要求
⑴ 掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的
方法。
⑵ 掌握词法分析的实现方法。
⑶ 上机调试编出的词法分析程序。
二、实践题
⒈ 题目
用 C/C++ 语言编写前述 C/C++ 子集的词法分析程序。
1)主程序设计考虑,(参阅后面给出的程序框架)
主程序的说明部分为各种表格和变量安排空间。
3
剩余16页未读,继续阅读
资源评论
ycj911
- 粉丝: 2
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功