实验一(一) 基于C语言的TINY编译器与TM虚拟机(1学时)
实验目的
初步认识编译器系统和目标机,体会系统编程,了解条件编译和增量编程。
实验任务
- 获取TINY语言编译器相关源代码。
- 了解TINY语言定义,可参见文档《TINY语言及其编译器实现》。第一次实验时对TINY语言有大致了解即可,后续实验中会陆续阅读更多TINY语言及其编译器的文档,详细了解其词法、语法、语义、运行时环境、目标机器、目标语言等内容,最终能编写出该语言的编译器。
- 生成和使用TINY语言的编译器。
- 大致了解TINY编译器源代码。
实验内容
- 生成TINY编译器
- 生成TM虚拟机
- 通过条件编译生成部分编译器
- 使用flex生成TINY编译器
- 使用bison生成TINY编译器
具体步骤详见tiny编译器的使用.ppt。
备注
1.实验资料
- TINY编译器及TM虚拟机源代码
下载loucom.ZIP并解压。
- FLEX和Bison程序
下载flexbison.zip并解压。
- 开发环境
兼容C的开发环境,如:VS或者DEV C++。
此部分实验学生自行完成,要求人人过关。
(一)不写实验报告,把心得体会写在实验一(二)的实验报告的心得体会部分。
实验建议
这个实验环境配置比较麻烦,当时做实验的时候见过很多人环境配置出错,甚至装了XP虚拟机的都有。。。建议使用VC++6.0版本建立工程,可以省去很多麻烦。
实验一(二)DFA的编程实现(3学时)
实验目的
通过本次实验,加深对DFA及其识别的语言的理解,学习对一般的DFA的表达方法与编程实现方法。
实验任务
编写一个C语言程序