编译原理 实验报告.doc

编译原理 实验报告.doc

ID:61511660

大小:5.16 MB

页数:7页

时间:2021-02-08

编译原理 实验报告.doc_第1页
编译原理 实验报告.doc_第2页
编译原理 实验报告.doc_第3页
编译原理 实验报告.doc_第4页
编译原理 实验报告.doc_第5页
资源描述:

《编译原理 实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、软件学院验证性实验报告专业:软件开发(.Net方向)年级/班级:2010级2012—2013学年第一学期课程名称编译原理指导教师孟慧丽本组成员学号姓名实验地点过街楼B区实验时间2012.10.29项目名称源程序的预处理实验类型验证性一、实验目的及实验项目简介:运用编译程序,完成下述源程序的编译,了解源程序的预处理功能即通过编译程序,将高级语言程序(源程序)翻译成低级语言程序(目标程序)源程序的输入设源程序如下所示,其中‘‘为续行符。源程序读入后,输入缓冲区的内容如下所示:Begin/*S=2*

2、3.14*R*R+2*3.14*R*H*/tRealr,h,s;ts=2*3.14*r*(r+h)End…上述源程序经预处理后,扫描缓冲区中的内容如下所示:beginrealr,h,s;s=2*3.14*r*(r+h)end...二、实验仪器及设备:在MicrosoftVisualC++6.0环境下运行程序VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。VisualC

3、++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用有很大的局限性,只适用于Windows2000、WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC++6.0为平台。计算机属性:三、实验步骤:实验主要步骤:在MicrosoftVisualC++6

4、.0环境下输入下面程序用记事本编写"source.txt"文件(注意:保证"source.txt"文件和C++文件在同一目录下)程序代码:实验代码分析:根据词法分析Begin、end为保留字,:=为赋值号,*为乘号,.为界符,+为加号1.程序头文件#include#include2、测试驱动程序,并将缓冲区清0voidpro_process(char*);voidmain(){charbuf[4048]={''};3、调用预处理程序pro_pro

5、cess(buf);cout<

6、of(char)))//从文件读一个字符{switch(in_comment){casefalse:7、&&逻辑与运算符,前一个字符为'/',并且当前字符为'*',即遇到'/*'表示进入注释,去除已存入缓冲区的字符if(old_c=='/'&&cur_c=='*')i--;in_comment=true;}else{8、前一个字符为'\',并且当前字符为'',即发现续行,当编译器扫描源程序遇见续行符“”时就忽略紧挨着的换行符“”,这样前后两行就能连接起来了。if(old_c=='\

7、'&&cur_c=='')//发现续行,去除已存入扫描缓冲区的字‘’i--;else{9、根据ASCII代码与字符对照表可知,ASCII值在065--090之间即为大写英文字符,ASCII值在097--122之间即为小写英文字符,如果当前字符为大写字符,便将其转换为相应的小写字符if(cur_c>='A'&&cur_c<='Z')//大写变小写cur_c+=32;10、

8、

9、逻辑或运算符,当前字符为't'或'',即用空格取代if(cur_c=='t'

10、

11、cur_c=='')//空

12、格取代TAB换行cur_c='';buf[i++]=cur_c;}}break;casetrue:11、&&逻辑与运算符,前一个字符为'*'',并且当前字符为'/',即遇到'*/'表示离开注释if(old_c=='*'&&cur_c=='/')//离开注释in_comment=false;}old_c=cur_c;//保留前一个字符}12、在源程序尾部添加字符‘#‘buf[i++]='#';}四、实验结果:第一次运行结果:因未将源程序"source.txt"文本文件和C++文件保存在同一目录下,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。