欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    编译原理词法分析课程设计Word格式文档下载.docx

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

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

    编译原理词法分析课程设计Word格式文档下载.docx

    1、a)需求分析:说明程序任务 输入及其范围,输出形式,测试数据(正确,错误数据) 测试数据:void main( )int a,b;a=10;b=a+20;End输出形式:(2,”main”)(5,”(“)(5,”)“)(5,”“)(1,”int”)(2,”a”)(5,”,”)(2,”b”)(5,”;”)(2,”a”)(4,”=”)(3,”10”)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,”20”)(5,”;”)(5,”“) 词法分析器的功能是输入源程序,输出单词符号。 本实验中,可采用的是一大类符号一类别码的方式。b)概要设计 主程序流程: 否 是模块间的调用

    2、关系:c)详细设计 主函数:#include string.hchar prog80,token8,ch;int syn,p,m,n,sum;char *rwtab6=begin,ifthenwhiledoend;void scaner(void);int main() p=0; printf(please input a string(end with #):n); do scanf(%c,&ch); progp+=ch; while(ch!= scaner(); switch(syn) case 11:( %-10d%5d )n,sum,syn); break; case -1:you h

    3、ave input a wrong stringn return 0; default:( %-5d %s %s %s)n,syn,“,token,” while(syn!=0);Scaner()函数:void scaner(void) 实现对输入程序的分析; 并将分析结果返回给main()函数;(详细源代码见电子稿)4、运行结果及分析输入程序:运行结果:时间复杂度分析:本实验对每个字符逐一读取,以单词为单位,与原有的合法字符进行一一比对,时间复杂度为单词个数的常数倍,所以对于n个字符的源程序复杂度为n。五、实验体会经过这次试验,理解了词法分析的基本思想,对编译器的编译过程有了一定的了解。最重

    4、要的是,这次课程设计,在锻炼我编程能力的同时,让我对课堂上学到的知识有了比较透彻的理解。实验二 C-语言的词法分析器(基于Lex)一.课程设计目标自动构造C-语言的的词法分析器,要求能够掌握编译原理的基本理论,,理解编译程序的基本结构,掌握编译各阶段的基本理论和技术,掌握编译程序设计的基本理论和步骤.,增强编写和调试高级语言源程序的能力,掌握词法分析的基本概念和实现方法,熟悉C-语言的各种Token。二.分析与设计过程基于Parser Genarator的词法分析器构造方法Lex输入文件由3个部分组成:定义集(definition),规则集(rule)和辅助程序集(auxiliary rout

    5、ine)或用户程序集(user routine)。这三个部分由位于新一行第一列的双百分号分开,因此,Lex输入文件的格式如下definitions%rulesauxiliary routines而且第一部分用“%”和“%”括起来。第一和第三个部分为C语言的代码和函数定义,第二个部分为一些规则。定义正则表达式如下 ID = letter letter*NUM = digit digit*Letter = a|z|A|ZDigit = 0|9Keyword = else|if|int|return|void|whileSpecial symbol = +|-|*|/|=|=|!=|=|;|,|(|

    6、)|/*|*/White space = “ ”Enter = n在lex中的构造letter A-Za-zdigit 0-9id (letter|_)(letter|digit|_)*error_id (digit)+(letter)+ num digit+whitespace t+enter n+在Lex中的规则定义构造定义识别保留字规则int|elsereturnvoidUpper(yytext,yyleng);printf(%d 行 ,lineno);%s reserved wordn,yytext);/保留字定义识别数字规则num printf(%s NUMn/数字定义识别专用符号规

    7、则;()*/+-stdlib.hint lineno=1;/定义行号%/定义正则表达式letter A-Za-z /字母digit 0-9 /数字id (letter|_)(letter|digit|_)* /开头为字母的标识符error_id (digit)+(letter)+ /开头为数字的错误标识符num digit+ /数字集合whitespace t+ /空格enter n+ /回车/定义识别规则/识别保留字 /打印行号/输出保留字/识别数字/输出数字/识别专用符号/输出特殊符号/识别标识符/打印行号/打印标识符/识别错误的标识符 printf( %sn/识别空格/识别回车/转换大小

    8、写Upper(char *s,int l)int i;for(i=0;il;i+)si=toupper(si);/将保留字变为大写/主函数main(void) /定义输入文件名变量 char infilename400;输入文件名:%sinfilename); yyin = fopen(infilename,r/读取文件开始词法分析: n return yylex();4.测试结果 测试的文件代码(第一组)测试结果分析测试的文件代码(第二组)测试的文件代码(第三组)五.总结通过这次试验,掌握了编译原理的基本理论,,理解了编译程序的基本结构,掌握了编译各阶段的基本理论和技术,虽然遇到了很多困难,但是通过自己的努力和老师同学的帮助,掌握了词法分析的基本概念和实现方法。让我对词法分析有了进一步的了解,学会了运用Lex自动构造词法分析器,学会了基于Parser Genarator的词法分析器构造方法。


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开