欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    答辩--C语言编译器的设计和实现

    • 资源ID:1402008       资源大小:1.30MB        全文页数:32页
    • 资源格式: PPT        下载积分:50金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要50金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

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

    答辩--C语言编译器的设计和实现

    1、,C语言编译器的设计和实现,LOGO,目录,背景及意义,相关技术及理论,系统需求分析,系统总体设计,系统详细设计和实现,背景及意义,背景,随着计算机的广泛应用,计算机程序设计语言也从初期的机器语言发展为汇编语言,以及限制的各种高级程序设计语言。而编译技术室计算机语言发展的支柱,也是计算机科学中发展最迅速、最成熟的一个分支,他集中体现了计算机发展的成果与精华。 其核心思想就是把同样的逻辑结构和思想从一种语言表示的程序转换为另外一种语言表示的程序。从高级语言,最终到硬件执行的物理信号,这一层层的转化,都涉及编译技术的应用。 因此,编译技术是人类智慧到机器执行的桥梁,从软件到硬件层层推进的衔接力量。

    2、,背景及意义,编译器是一种相当复杂的程序,其代码的长度可从几千行到几百万行不等。编写甚至读懂这样的一个程序都非易事,大多数的计算机专业人员从来没有编写过一个完整的编译器。但是,几乎所有形式的计算均要用到编译器,而且任何一个与计算机打交道的专业人员都应该掌握编译器的基本结构和操作。 因此,掌握这一技术具有非常重大的实际意义。,意义,相关环境,VC2012,软件环境,硬件环境,CPU:Intel Core I5 操作系统:Windows7,相关理论,编译原理 形式语言理论 词法分析 语法分析 语义分析 中间代码生成,使用技术,标准C+实现,保存不同信息的数据结构,大量算法,开发步骤,1. 认真分析

    3、,合理分工 2. 算法设计,方案确定 3. 语言选择,编制程序 4. 调试程序,确保质量 5. 资料整理,文本形成,系统需求分析,两者语法结构上可以不同,但语义上是等同的,系统需求分析,识别C源文件语法正确性 判断出错类型 识别词法错误 分析C源文件语义,系统总体设计,系统详细设计和实现,词法分析 语法分析 语义分析 中间代码生成,词法分析,词法分析的功能,属性字:单词的一种机内表示(反映单词的有关特性).,单词符号(单词):程序语言具有独立意义的最小语法单位,保留字(关键字),常数,标识符,界限符(特殊符号),程序语言定义的具有固定意义的标识符 如:Pascal 中的begin、end、if

    4、、while。,用来表示各种名字.如:变量名、数组名、过程名等。,如:128、0.123、3.14E-2。,如:+、-、*、/、=、=、=、=等。,单词符号,词法分析,单词符号的种类,词法分析程序的设计与实现,初始化,读字符,是字母?,读标识符,数字?,取数字,查常量表,生成属性字,写到输出流,是否分析结束,结束,特殊符号?,出错,查特殊符号表,生成属性字,查保留字表,查到?,查名字表,生成属性字,生成属性字,Y,Y,Y,Y,N,N,N,N,Y,N,语法分析,自顶向下 LL(1) 递归下降 自底向上 LR(0) SLR(1) LR(1) LALR(1),语法分析-LR(1),LR(K)是一种有

    5、效的自底向上语法分析方法。它的适应范围广,分析速度快,且能准确及时地发现语法错误,所以是当前最一般的语法分析方法。 LR(0) 是基础,但分析能力低,局限性大 SLR(1) “简单LR”实现容易,能力较强,不适合有 些文法 LR(1) 分析能力最强,适用于大多数文法, 但工作量大 LALR(1) 能力介于SLR(1)与LR(1)之间,空间节省,语法分析-LR(1),1、分析思想及逻辑结构,语法分析-LR(1),1、分析思想及逻辑结构,分析表,总控程序,控制机构,r4,语法分析-LR(1),语法分析采用LR分析器,由于分析表数据量庞大,采用程序自动算出。 1) 求非终结符的first集。为方便以

    6、后访问,求完所有非终结符的first集后将它放在一个以非终结符为键的hash表中。,语法分析-LR(1),2) 求项目集闭包,需要用到第1步中的结 果。闭包利用集合的唯一性,故使用C+标准STL库中的set模板。利用一个三元式存储标识一个产生式: struct item_node size_t cfg_no; /产生式编号 size_t dot_pos; /加点位置 int possible_prefix; /输入符号 ;,语法分析-LR(1),3) 求go函数。即是一个项目集遇到输入代码流中的一个符号后转向的另一个状态时候的项目集,并将之返回。 4) 求整个文法的项目集簇。项目集的个数即为有穷状态自动机的状态个数,根据以 上57个产生式,本编译器产生的状态为171个。,语法分析-LR(1),5) 生成LR(1)分析表,由于分析表的庞大,故将之生成后存于文件中。即action_goto_ta


    注意事项

    本文(答辩--C语言编译器的设计和实现)为本站会员(毕***)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583