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

    编译方法结课作业.docx

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

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

    编译方法结课作业.docx

    编译方法结课作业姓名班级学号任课教师开设学期20 1 5-20 1 6 第一学期评定成绩评定人评定日期2016年1月10日1.谈谈你对编译程序工作过程的5个阶段的理解。答:编译程序正常工作五个过程的流程图如下列图所示。源程序目标程序阶段一:词法分析这个阶段的目的就是按照从左到右的顺序一个一个的将其读入源程序,即识 别一个单词,同时对其进行归类。这个过程就类似于我们对汉语语法的分析,比 如,我们输入这样一句话:我是一名东北大学的学生。然后对其进行语法分析, 读入“我”,可以识别这个单词为汉语实词中的代词类,“我”就归到名词类;读 入“是”,我们归到汉语实词中的动词类;读入“一”字,不能构成一个可识别 的符号,紧接着读入“一名”,归为汉语实词中的形容词类;读入“东”字,也 不能构成一个可识别的单词,紧接着读入“东北大学”,归为汉语实词中的名词 类;读入“的”,我们归到汉语虚词中的助词类;读入“学”字,同样不能构成 一个可识别的单词,紧接着读入“学生”,归为汉语实词中的名词类。而在计算机中,如果我们对如下所写的某些代码进行归类: x:=x+l;beginy:=9;z:=y*x;end;归类结果如下表所示:注意:(1) KTk, PTp-静态表(系统设定);(2) ITi, CTc-动态表(随源程序变化);关键字表界符表符号表常数表阶段二:语 法分析在上面进行词法分析的基础上,将单词序列分解成各类语法短语,如“程序”、 “语句”、“表达式”等等。比方通过上面的单词“我” “是” “一名” “东北大学” “的”“学生”,可以构成多种形式的语句,我是一名东北大学的学生,我是东北 大学的一名学生,东北大学的一名学生是我等等,都符合主语谓语这样的 语法。阶段三:语义分析与中间代码生成审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。 例如上面的“我是一名东北大学的学生” “我是东北大学的一名学生” “东北大学 的一名学生是我”三个句子,显然最后面的“东北大学的一名学生是我”就不符 合语义。接着在进行了语法和语义的分析工作之后,编译程序将源程序变成了一 种内部表示形式,这种内部表示形式叫做中间语言或中间代码。我们可以理解为, 是生成一种介于源码和机器语言的形式。阶段四:代码优化根据代码优化是否涉及具体的计算机来划分:1 .与机器无关的优化(在源代码或中间代码级上进行),又可分三种:(1)全局优化一针对整个源程序。(2)局部优化一除全局优化外皆属此类。常值表达式节省(常数合并)如:a=4+3;b=a+l;4+3,a+1皆为常值表达式!那么可优化为a=7;b=8;又如a=5+3;.;a=x.; a=a+l;那么a+1不是常值表达式!公共子表达式节省(删除多余运算)如:a=b*d+l;e=b*d-2;b*d 是公共表达式!那么可优化为 t=b*d; a=t+1; e=t-2;又如:b=b*d+l; e=b*d-2;那么b*d不是公共表达式!删除无用赋值如:a=b+c;x=d-e;y=b;a=e-h/5;其中 a=b+c 为无用赋值!那么可优化为 x=d-e; y=b; a=e-h/5;不变表达式外提(循环优化之一),即把循环不变运算,提到循环外。如:i=l; while(i< 100) x=(k+a)/i;, , , ;i+;那么可优化为 i=l;t=k+a;while (i< 100) x=t/i;. ;i+;消减运算强度(循环优化之二),即把强度大的运算换算成强度小的运算。如:i=l; while (i<100 )t=4*i; b=af2;.; i+; 那么可优化为 i=l;t=0; while (i<100)t=t+4; b=a*a;i+;(3)循环优化一对循环语句实施的优化。2 .与机器有关的优化(目标代码级上的优化),包括:(1)寄存器分配的优化。(2)消除无用代码。通过以上代码优化划分和具体方法的简单了解,优化代码这一阶段主要是对 上一阶段的中间代码进行变换或者改造,目的是使生成的目标代码更为便捷、高 效,以到达节省时间和空间的目的。阶段五:目标代码生成目标代码生成是编译程序工作过程的最后一个阶段,其功能表示如下:其中:中间代码一逆波兰式,三元式,四元式,语义树;目标代码一机器语言,汇编语言,符号表一变量的语义词典,本阶段的目的通过目标代码生成器把优化后的中间代码变换成目标代码。目 前我了解的目标代码有三种形式:能立即执行的机器语言代码,其所有地址都要重定位。汇编语言代码需要经过汇编程序汇编后,才能成为可执行的机器语言 代码。待装配的机器语言模块,只有执行时,由连接装入程序把它们和某些 运行程序连接起来,才能转换成可执行的机器语言代码。止匕外,因为这是编译程序工作过程的最后阶段,与硬件系统结构、指令系统 相关,同时还涉及到硬件系统功能部件运用、机器指令的选择等等。本阶段理应考虑到直接影响目标代码运行速度的三个主要问题:一是如何生成较短的目标代 码;二是如何充分利用计算机指令系统的特点,以提高目标代码的质量;三是如 何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数。2.你觉得编译程序中使用的关键技术都有哪些应用方向,请详细说明。答:编译方法不仅适用于编译程序,也广泛适用于其他系统软件和应用软件 的开发。从根本上看,编译程序和其他应用程序一样,都可以归结为处理数据和 表格,故可将它当作一个大型的应用实例。通过本课程学习,到达提高应用程序 设计能力和解决实际问题能力的目的。如词法分析中的字符串匹配技术可以应用于文本编辑程序、信息检索、通讯 程序、模式识别中上下文无关文法和语法制导的翻译可以用于分析表达式,写打字程序,绘图 程序等小系统。代码优化技术更可以用于自己的结构化程序中,用于改进性能、优化已有的 程序等成绩评价表格:考核标准得分(1)正确理解和掌握编译程序的工作原理;(30%);(2)有自己独到的见解(20%);(3)文字描述能够使用专业术语完成(30%);(4)论述有理论依据(20%)

    注意事项

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

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




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

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

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

    收起
    展开