编译原理实验指导

更新时间:2024-01-05 01:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编译原理实验指导书

淘宝店530213

目录

编译原理课程实验指导 ................................................................................................................... 1 实验一 源程序预处理 ..................................................................................................................... 2

1

实验二 简单程序设计语言的词法分析器 ..................................................................................... 6 实验三 递归下降分析法 ................................................................................................................. 9 实验四 预测分析法 ......................................................................................................................... 9 实验五 LR语法分析..................................................................................................................... 13

记住淘宝店530213

1

编译原理课程实验指导

一、课程实验方案 1 实验教学目标与基本要求

(1)通过实习具有开发基本的词法分析和语法分析算法的能力。 (2)了解词法分析和语法分析的工作原理和特点 (3)掌握课本所介绍的编译算法的原理和实现 2 实验环境介绍

实验主要以程序设计实现各种教学课堂中讲过的图形算法为主。 程序设计设计语言主要以Visual C++语言为实验平台。 3 课程实验内容

1

实验一 源程序预处理

实验学时:2学时 实验目的:

熟悉源程序预处理的任务和要求。

实现源程序输入串中注释、续行符的删除,换行符和Tab的替换,大小写字母变换,得到预处理后的文本串,为单词识别做好准备。 实验内容:

1. 删除注释

2. 删除续行符以及后续换行符 3. 将换行符和TAB统一替换为空格

4. 将大写字母变换为小写字母,或者相反,以实现不区分大小写

5. 识别标号区,识别续行标志。 实验步骤:

(1)熟悉教材关于词法分析中预处理的原理。

(2)依照教材关于源程序预处理的算法,使用C/C++语言或其它语言实现该算法。

(3)调试、编译、运行程序。 实验要求:

在下次实验时提交本次实验的实验报告(实验报告包括实验目

2

的、实验内容、实验实现过程、源程序、实验结果、实验体会)。 实现代码: #include #include # include void pro_process(char *); void main( ) {//定义扫描缓冲区

char buf[4048]={'\\0'}; //缓冲区清0 //调用预处理程序 pro_process(buf);

//在屏幕上显示扫描缓冲区的内容 cout<

void pro_process(char *buf) {

ifstream cinf(\

int i=0; //计数器

char old_c='\\0',cur_c; //前一个字符,当前字符 bool in_comment=false; //false表示当前字符未处于注释中 while(cinf.read(&cur_c,sizeof(char))) //从文件读一个字符 {

3

本文来源:https://www.bwwdw.com/article/098x.html

Top