欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    编译原理课程设计报告_词法分析.pdf

    • 资源ID:76229639       资源大小:261.03KB        全文页数:6页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译原理课程设计报告_词法分析.pdf

    1 一.课程设计题目:词法分析器的实现二.课程设计成员三.课程设计内容和要求设计一个程序,调试、编译,实现词法分析的功能,识别各单词或字符所属类别,并显示在屏幕上。词法分析器:逐个读入源程序字符并按照构词规则切分成一系列单词。单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。词法分析是编译过程中的一个阶段,在语法分析前进行。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。要求:通过词法分析器能够实现以下五种类型如单词等的识别。(1)关键字 begin,end,if,then,else,while,write,read等,do,call,const,char,until,procedure,repeat等(2)运算符:+,-,*,/,=等(3)界符:,;,.,(,),:等(4)标识符(5)常量四操作要求首先建 立一 个或 多个 文档,此 处新 建了 两个 文档,例:07196133.txt文本 文档和zhaoxiaodong.txt文本文档,以供选择,各文本文档中都输入有不同的内容,2 运行程序,出现提示,输入文本文档的名称,即可对文本文档中的内容进行分析,并把分析结果输出显示在屏幕上。五.算法设计#include#include using namespace std;#define MAX 22 char ch=;string key15=begin,end,if,then,else,while,write,read,do,call,const,char,until,procedure,repeat;int Iskey(string c)/关键字判断int i;for(i=0;iMAX;i+)if(pare(c)=0)return 1;return 0;int IsLetter(char c)/判断是否为字母 if(c=a)|(c=A)return 1;else return 0;int IsDigit(char c)/判断是否为数字 if(c=0&c=9)return 1;else return 0;void analyse(FILE*fpin)string arr=;while(ch=fgetc(fpin)!=EOF)arr=;if(ch=|ch=t|ch=n)else if(IsLetter(ch)while(IsLetter(ch)|IsDigit(ch)if(ch=A)ch=ch+32;3 arr=arr+ch;ch=fgetc(fpin);fseek(fpin,-1L,SEEK_CUR);if(Iskey(arr)coutarrt$属于关键字 endl;else coutarrt$属于普通标识符endl;else if(IsDigit(ch)while(IsDigit(ch)|ch=.&IsDigit(fgetc(fpin)arr=arr+ch;ch=fgetc(fpin);fseek(fpin,-1L,SEEK_CUR);coutarrt$属于无符号实数endl;else switch(ch)case+:case-:case*:case=:case/:coutcht$属于运算符 endl;break;case(:case):case:case:case;:case.:case,:case:case:coutcht$属于界符 endl;break;case:ch=fgetc(fpin);if(ch=)cout:=t$属于运算符 endl;else cout=t$属于运算符 :ch=fgetc(fpin);if(ch=)cout=t$属于运算符)coutt$属于输入控制符endl;else coutt$属于运算符 endl;fseek(fpin,-1L,SEEK_CUR);break;case:ch=fgetc(fpin);if(ch=)cout=t$属于运算符 endl;4 else if(ch=)coutt$属于输出控制符)coutt$属于运算符 endl;elsecoutt$属于运算符 endl;fseek(fpin,-1L,SEEK_CUR);break;default:coutcht$无法识别字符,请重新输入!endl;void main()char in_fn30;FILE*fpin;coutin_fn;if(fpin=fopen(in_fn,r)!=NULL)break;else cout提示:路径输入错误!请重新输入源文件名:;coutn*endl;coutn*分析*endl;analyse(fpin);fclose(fpin);六.上机实现情况及运行结果(包括中间和最终结果)源文件中包括的文件如下图:编写完程序后,调试,编译,无误,如下图:5 运行程序,根据提示,输入源文件名07196133.txt,显示词法分析结果如下图:运行程序,输入另一个源文件名zhaoxiaodong.txt,显示此法分析结果如下图:6 七.小结通过本次课程设计的练习,熟悉了用C+语言编写词法分析器的过程,掌握了词法分析器的原理以及功能。词法分析是编译过程中的一个阶段,在语法分析前进行。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。词法分析程序的主要任务:读源程序,产生单词符号。词法分析程序的其他任务:滤掉空格,跳过注释、换行符追踪换行标志,复制出错源程序,宏展开,等等等等。词法分析工作从语法分析工作独立出来的原因:简化设计,改进编译效率,增加编译系统的可移植性。而且从划分关键字,运算符,界符,标识符和常量,才发现数字,字母及符号组合有很多很多,无法全部枚举,所以在新建的文本文档中只象征性的列出几种符号,但这并不影响此法分析结果的完成。总之,通过本次实验,一点点分析词法分析器的功能,并努力实现它,掌握了课程设计内容的同时也锻炼了自己分析解决问题的能力以及编程能力,收获颇丰!

    注意事项

    本文(编译原理课程设计报告_词法分析.pdf)为本站会员(索****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开