编译原理实验报告- 源程序的预处理

更新时间:2024-03-16 14:07:01 阅读量: 综合文库 文档下载

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

编译原理 实验报告

学 号 专 业 姓 名 班 级 时 间 2011-10-30 实验题目: 源程序的预处理 一、实验目的: 根据所学的知识编写源程序代码并且对输入的具体的源程序进行处理。 对一段源程序预处理之后,将源程序中的注释与空格去掉,并将起始 和结束的符号由大写变成小写,并将处理后的源程序输出。 二、实验内容与步骤: 1. 用C语言编写一段代码对一段源程序进行预处理。代码如下: #include #include void pro_process(char *); void main() { //定义扫描缓冲区 char buf[4048]={'\\0'}; pro_process(buf); //在屏幕上显示扫描缓冲区的内容 cout<='A'&&cur_c<='Z') //大写变小写 cur_c+=32; if(cur_c=='\\t'||cur_c=='\\n') //空格取代TAB换行 cur_c=' '; buf[i++]=cur_c; } } break; case true: if(old_c=='*'&&cur_c=='/') in_comment=false; } old_c=cur_c; //保留前一个字符 } buf[i++]='#'; // 在源程序尾部添加字符 } 2.运行源代码,将源程序写入source.txt文本中,内用如下: Begin/*S=2*3.14*R*R+2*3.14*R*H*/ Real r,h,s; s=2*3.\\ 14*r*(r+h) End 3.调用source.txt文本将其内容写入缓冲区; 对源程序进行预处理并将结果输出如下: Begin real r,h,s: s=2*3.14*r*(r+h) end \\0 ...\\0

分析与体会:

首先是分析需要处理的一串代码,根据实验目的要求对其情况进行剖解,怎样将其源程序中的注释与空格去掉,并将起始和结束的符号由大写变成小写,而且还得将处理后的源程序进行输出;一步一步的实现。

通过编写C语言代码对源程序进行处理,不仅对代码的编写有了更深刻的了解,而且最重要的掌握了对源程序预处理的过程。进一步明白了编译器对源程序的语法分析,词法分析,对编译原理的内容也了解了一些,可以说是受益匪浅的。

备注:要求学生每次试验结束后把实验报告填好后交给实验指导教师。

本文来源:https://www.bwwdw.com/article/53j8.html

Top