下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译原理实验1 :词法分析器设计学生姓名专业 、班级指导教师成绩计算机与信息工程学院2018年11月20日、实验目的1. 理解词法分析程序的功能。2. 熟悉词法分析程序的设计原理和构造方法。3. 理解词法分析程序输出单词的形式。4. 设计实现针对简单语言的一个词法分析程序。二、实验要求1. 根据书P199给出的简单语言的词法和各单词符号种别码表,编写C或C+语言源程序,实现针对该简单语言的词法分析器;2. 独立做实验,输入、调试所编程序;3. 实验结束后,根据实验报告模板编写实验报告。 三、实验内容和步骤用 Visual C+ 作为实验开发环境,创建一个 Win32 Console Appli
2、cation 工程,工程 名为你的学号,添加三个文件:( 1 )存储结构定义:以为文件名;(2)基本操作和算法:以为文件名;(3)调用基本操作的主程序:以为文件名。编写程序:(1)文件定义单词符号的二元组结构、全局变量、关键字表的结束标志等。(2)文件实现词法扫描算法 scanner 及其所需的各种基本操作算法。( 3)文件调用 scanner 算法,实现词法分析器的功能。 源程序代码: #define _KEY_WORD_END waiting for your expanding typedef structint typenum;char * word;WORD;#includechar
3、 input50=;char token255=;int p_input;int p_token;char ch;char * rwtab=begin,if,then,while,do,end,_KEY_WORD_END;程序示意图。关键字表的初值。关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,贝y该单词为关键字, 否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char *rwtab6 = “begin ” ,“if ” ,“then ” ,“while ” ,“do” ,end” ;置初值调用扫描子程
4、序输出单词二元组2.扫描子程序的算法思想首先设置3个变量:(1) token用来存放构成单词符号的字符串;(2) sum用来存放整型单词(3) syn用来存放单词符号的种别码。(2) 画出词法扫描算法 scanner识别简单语言的状态转换图DFA (可手画再插入图片)(3) 解释子程序reverse的每句代码含义reserve函数的作用是遍历关键字表格,判断当前存入token的字符串是否是关键字 首先先设定一个初值为0的变量i (存在于while外部,会因为循环内部的操作而进行改变) while 条件内部完整代码应为:while(strcmp(rwtabi,_KEY_WORD_END) ! =
5、0),strcmp函数的作用是判断两个字符串是否相等:设两个字符串 str1,str2,若str1=str2 ,则返回零;若str1str2 ,则返回正数。已知关键字表格中最后一个元素为_KEY_WORD_E N所以这行代码的意思就是,从关键字表格中第一个字符串开始遍历(循环一次后i+ ),遍历到最后一个通过 strcmp函数运算等于零不满足循环条件所以跳出循环。 循环体内部if当前字符串和遍历到的关键字进行比较,两者相等时满足条件(!0!=0),相等时返还i+1。最后返还10 (关键字的种别码)(4)针对文件中 main函数的while(over1000&over!=-1)语句,解释over
6、的含义及何时over = -1while(over0 then x:=2*x+1/3; end #实验结果截图:(2)输入一段 源程序,要求每 单词符号此简单语言的人不同,且包含while -源程序:begi n x:=31;while x13 then x-;e nd#实验结果截图:六、实验中遇到 芝j iJJmini MWjShHumnJU VC -r 映1曲茴?0229如 ng? MQ也Leic | jhnitei- It*ur 耐jhU如我 tflth=lba-!ilntthe-ra昶ml *F4Mifc=Vbcreini彳心Ube xJ*2t then tK_蛊静址: J4rwhila 1,tD,m).max如川宵宙任总梶箍罐.的问题及解决方法本次实验的任务是用 C+编写一个词法分析器, 词法分析的基本任务是从字符串表示的源 程序中识别出具有独立意义的单词符号, 其基本思想是根据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年度全员质量文化建设
- 如何写买房合同协议书
- 承接扣瓦工程合同范本
- 工程造价概算合同范本
- 家庭农庄团购合同范本
- 工地包房出租合同范本
- 技术平台合作协议合同
- 对精神病人管控协议书
- 套房搬运外包合同范本
- 《小区室外道路改造工程施工方案》专题教学设计
- 云南师大附中2026届高三高考适应性月考卷(六)思想政治试卷(含答案及解析)
- 建筑安全风险辨识与防范措施
- CNG天然气加气站反恐应急处置预案
- 培训教师合同范本
- 2026年黑龙江单招职业技能案例分析专项含答案健康养老智慧服务
- 2025宁夏贺兰工业园区管委会招聘40人模拟笔试试题及答案解析
- (2025)70周岁以上老年人换长久驾照三力测试题库(附答案)
- 医院外科主任职责说明书
- 建设单位项目安全生产保证体系
- 2026期末家长会:初三备战没有不辛苦的 教学课件
- 真空乳化设备维护与清洁操作手册
评论
0/150
提交评论