




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单词的词法分析程序设计1实验题目 对于给定的源程序(如C语言或Pascal等),要求从组成源程序的字符行中寻找出单词,并给出它们的种别和属性输出二元组序列。以便提供给语法分析的时候使用。要求能识别所有的关键字,标志符等,并且能够对出先的一些词法规则的错误进行必要的处理。2 实验内容和要求 1. 给出语言的词法规则描述 2. 要求识别标识符、关键字、整常数、字符常数、浮点常数等 3. 要求能识别单界符:+,-,:等符号 4. 双界符:/*,:=,等 5. 要求完成一些相关的辅助任务。一个任务实滤掉源程序中的注释、空格、制表符、换行符;另一个任务是使编译器能够将发现的错误信息与源程序的出错位置联系起来,以及错误的类型等。3 待分析的词法文件 文件名称为:C:1.txt (分析结果见7:程序结果)4实验分析与设计过程实验分析与设计过程1. 实验说明分析语言的选择:由于对C语言比较熟悉,我选择分析的程序为C语言编写的程序。2. 词法分析器的功能以及输出形式分析1) 功能: i. 对于输入的C源程序,输出单词符号 ,把相应的源程序的字符串转换成单词符号的序列。 ii. 保存符号表,为所有的标识符建立一个符号表,以便于在语法和语义分析的时候使用。 iii. 错误输出与提示2) 结果输出形式:i. 对于token用二元组输出, ii. 符号表可以单独输出到文件中iii. 错误输出到界面即可3. 单词符号的表示各种关键字(保留字、基本字),各种运算符、各种分界符,都用一个种别码来标识。例:关键字 break、 保留字asm、运算符”+”、在源程序中1,2,3表示。 即所规定得到的中别码对应的词法描述为:1为关键字 2为标志符 3为常数 4为运算符或界符 5 算法描述由于这是一个用高级语言编写一个词法分析器,使之能识别输入串,并把分析结果(单词符号,标识符,关键字等等)输出.输入源程序,输入单词符号,本词法分析器可以辨别关键字,标识符,常数,运算符号和某些界符,运用了文件读入来获取源程序代码,再对该源程序代码进行词法分析,这就是词法分析器的基本功能.当词法分析器调用预处理子程序处理出一串输入字符放进扫描缓冲区之后,分析器就从此缓冲区中逐一识别单词符号.当缓冲区里的字符串被处理完之后,它又调用预处理子程序来处理新串.编写的时候,使用了文件的输入和输出,以便于词法分析的通用型,同时在文件输出时,并保存在输出文件output文件中。 从左到右扫描程序,通过初始化:1为关键字; 2为标志符; 3为常数 ; 4为运算符或界符。 扫描过程如下: 1指针扫描所打开的文件首,如果是字母开始处理字符关键字或者标识符 2为单字符运算、限界符,写入输出文件并将扫描文件指针回退一个字符; 3为双字符运算、限界符,写输出文件; 4读入的下一个字符为文件结束符;5只考虑是否为单字符运算、限界符,若是,写输出文件 6 程序框图如下Main输入正确的文件路径文件路径正确初始化打开文件扫描指针*fp 若指针不为空While(1)退出(exit)Enter q/Q to quit初始化函数(各个分析表)调用扫描scanner指针*fp指针指向output(输出结果保存的文件)中判断fp是否指向文件的末尾每扫描一个,用一个*fp执政写入一个二元组进 入output*fp扫描指针后移7 程序结果如下(源程序见磁盘)8实验感想 词法分析是编译的第一个阶段,它的主要任务是从左至右扫描整个程序的每个字符,将源程序变换为单词序列,以其内部的表示形式提供给语法分析的各阶段。而做这个实验是使用的是c语言,并没有使用自动生成的词法分析器LEX,但是在做这个实验的时候参考了相关的书籍之后,使用文件打开,并保存输出结果的方式,这样比较能够使程序的通用性加强,同时作为刚开始接触到编译的前端的我,发现了自己还有许多的不足之处。为了以后的语法分析能够结构更加的明晰,那么就必须认真的研读老师所给的相关资料,同时要学会分析较完整定义的相关文法,使之更为直接明了。这个实验主要花费的时间,并不是在于词法分析即源文件中的scan扫描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机务段的考试题及答案解析
- 基于区块链的多目标关键路径研究-洞察及研究
- 高速公路封路合同模板(3篇)
- 高速边坡水沟施工合同(3篇)
- 高空修剪树木施工合同(3篇)
- 产业园区租赁承包管理合同
- 农业企业农产品质量及种植技术保密合同
- 法人名义挂靠免责协议范本
- 2025公务员综合岗位面试题及答案
- 原材料典当借款协议范本
- 南京尚勤新材料科技有限公司药用表面活性剂研发项目环评报告表
- 无线网络资源管理
- 肥胖的危害课件
- 第一单元第1课《小小科学家》教学课件一年级上册科学
- 新苏教版小学科学六年级上册《制作汽水》课件
- 眼科操作并发症及处理
- 慢性组织修复中的宿主反应
- 大学介绍清华大学宣传
- 职场餐桌礼仪知识培训课件
- 《绿色建材》课件
- 个人述职报告范文汇总参考模板
评论
0/150
提交评论