《编译原理》词法分析实验报告模板-课程上机.doc
《《编译原理》词法分析实验报告模板-课程上机.doc》由会员分享,可在线阅读,更多相关《《编译原理》词法分析实验报告模板-课程上机.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实 验 报 告课程名称 编译原理 实验项目 设计与实现一个词法编译器 班级 姓名 学号 实验名称设计与实现一个词法编译器实验地点实验时间1. 实验目的:结合讲授内容,设计与实现一个简单词法编译器,通过本实验加深对词法分析程序的功能及实现方法的理解。2. 实验内容:设计与实现一个简单词法编译器。具体内容是对输入的语句进行分析,分解出关键字3. 实验要求:(1)掌握和实现词法分析器的功能:输入源程序,输出单词符号(二元式表示)。二元式(单词流)源程序(字符流)词法分析器 输入 输出(2)单词符号的分类:关键字:是由程序语言定义的具有固定意义的标识符。标识符:用来表示各种名字,如变量等。常数:常数的
2、类型有整型,实型等。运算符:算术运算符,关系运算符,逻辑运算符。界限符:逗号,分号等。(3)实验步骤:1、确定词法分析器的接口关系;2、设计算法参考教材图2.5。4. 实验准备:1:pc机一台;2:VC+编译器5. 实验过程:1,分析问题输入源程序,输出单词符号(二元式表示)。二元式(单词流)源程序(字符流)词法分析器 输入 输出2,算法步骤: :将文件中每行读入的字符串存入数组buffer100,不跳过空格; :利用构造函数传递数组,和每行的长度length; :调用成员函数scan,i=0, while(ilength)开始检测buffer的字符; :if(isletter(),接收完成后
3、比较是否为关键字,不是则将其存入标示符id5010中 ; :else if(isdigit(),接收完成后存入cst5010中; :else if 为界符,比较符,运算符,输出对应的二元编码; :接受完毕,输出id5010-标示符,cst5010-常数,列表;3:程序代码#include#include#include#define_KEY_WORD_END#/结束标志typedefstructinttypenum;/种别码char*word;/单词WORD;charinput1001;chartoken100=;intp_input;/输入缓冲区指针intp_token;/单词缓冲区指针ch
4、ar*rwtab=begin,if,then,while,do,end,_KEY_WORD_END;/关键字列表,可扩充charch;/获取一个字符charm_getchar()/在缓冲区获取一个字符ch=inputp_input;p_input+;returnch;voidgetbc()/去除空白符号while(ch=|ch=n)ch=inputp_input;p_input+;intletter()/判断字符是不是字母if(ch=a&ch=A&ch=0&chtypenum=10;p_token=0;/单词指针初始化m_getchar();/获取一个字符getbc();/去除空白if(let
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译 原理 词法 分析 实验 报告 模板 课程 上机
限制150内