编译原理实验报告 编写词法分析程序.doc
《编译原理实验报告 编写词法分析程序.doc》由会员分享,可在线阅读,更多相关《编译原理实验报告 编写词法分析程序.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理实验报告实验名称: 编写词法分析程序 实验类型: 验证型实验 指导教师: 专业班级: 姓名: 学号: 电子邮件: 实验地点: 实验成绩: 日期:201 年 4 月 20 日一、 实验目的通过设计、调试词法分析程序,实现从源程序中分出各种单词的方法;熟悉词法分析程序所用的工具自动机,进一步理解自动机理论;掌握文法转换成自动机的技术及有穷自动机实现的方法;确定词法分析器的输出形式及标识符与关键字的区分方法;加深对课堂教学的理解;提高词法分析方法的实践能力;通过本实验,应达到以下目标:1、掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。2、掌握词法分析的实现方法。3、上
2、机调试编出的词法分析程序。二、 实验过程先思考如何实现,画出流程图,然后变成实现所需功能。流程图如下:三、实验结果词法分析实验成功。四、讨论与分析本以为这个程序会很难,没想到真正写起来感觉还不错。主要是要先画好流程图,有个自己的思路,这样才好进行下一步。流程图很关键,一方面在自己写起来的时候,思路清晰,明了;另一方面,也可以让别人很轻松的看懂你的程序思想。五、附录:关键代码(给出适当注释,可读性高)#include#include#include /保留字表char* keyword8 = if,else,for,while,do,int,read,write;/纯单分界符char singl
3、eword50 = +-*();,:#&|;/双分界符char doubleword10 = =!&;/用于接收输入输出文件名char Scanin300,Scanout300;/用于指向输入输出文件的指针FILE* fin,* fout; /词法分析函数int TESTscan() char ch,token40; /CH为每次读入的字符,TOKEN用于保存识别出的单词int es = 0,j,n; /es为错误代码,0表示没有错误printf(请输入源程序文件名(包括路径):);scanf(%s,Scanin);printf(请输入词法分析输出文件名(包括路径):);scanf(%s,Sc
4、anout);if(fin = fopen(Scanin,r) = NULL) /判断输入文件名是否正确printf(n打开词法分析输入文件出错!n);es=1; /如果出错es置为1if(fout = fopen(Scanout,w) = NULL) /判断输出文件名是否正确printf(n创建词法分析输出文件出错!n);es=2; /如果出错es置为2ch = getc(fin);while(ch!=EOF)while(ch= |ch=n|ch=t) ch=getc(fin); if(isalpha(ch) /如果是字母 则进行标识符处理 token0 = ch;j = 1;ch = ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理实验报告 编写词法分析程序 编译 原理 实验 报告 编写 词法 分析 程序
限制150内