编译课程中的工程实践能力培养.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译课程中的工程实践能力培养.ppt

张 莉 北京航空航天大学 2011. 5 第二届全国编译课程教学研讨会 探讨面向工程师教育的 编译课程教学 ---编译课程中的工程实践能力培养 内 容 工科院校培养定位 对卓越工程师计划的理解 工程师教育:对编译课程教学的理解和实践 对卓越工程师计划的理解 作为一所工科为主的院校的教师的思考 什么是“工程师教育” 什么是工程师? 职称,in china 作为一种学历教育,一种教学模式,工程师教育的含义是什么? 卓越工程师计划需要培养什么样的人才? 卓越工程师的人才培养定位? 卓越工程师计划需要培养什么样的人才? 具备解决工程问题能力的人才 什么是工程项目、工程问题? 曾经的“第一颗原子弹项目”是! 目前的“大飞机”项目是! 磁悬浮火车的研制也是! 银河计算机、天河计算机都是! “龙芯1号”、“龙芯2号”、“龙芯3号”都是! 因此,工程项目的特点: 目标明确,具体 实现过程,往往需要创造性的解决问题,同样需要创新,更需要团队合作 与科学研究的不同 如研究鸟的飞行原理;苍蝇飞行的灵活性 是科学研究,观察自然,探索未知。 特点:结果可不预期 一旦取得成果,可服务于工程项目,有可能取得突破性进展,取得原始创新。 创新的几个层次 科学/基础研究:发现规律,探索未知 工程/技术研究:解决具体问题,有预期目标 科学研究:只有第一,没有第二 技术:没有最好,只有更好 卓越的法国工程师教育 法国工程师教育是法国独一无二的精英教育 其它国家 美国“2020年的工程师”教育计划,指出了美国2020年工程师的培养目标,即美国2020年工程师应具备的素质: 分析能力强;实用技能; 创造力(发明、创新、艺术感); 良好的沟通能力;精通企业管理原则; 领导能力;崇高的道德标准; 强烈的事业心;有活力、够灵活、适应能力强、弹性大;具有终身学习意识。 探讨面向工程教育的编译课程教学 编译课程教学针对的是典型的工程问题 实践项目目标明确:开发一个小型编译器 特点: 解决具体问题,有预期目标 编译课程的培养目标 --工程方面 教会学生解决问题的方法 再寻求更好的方法、更好的结果 如何做一个编译器 如何更容易地去做编译器 如何做一个更好的编译器 解决问题的步骤 首先分析问题:什么是编译? 编译的本质是什么?是翻译、是转化 也就是要完成从程序一种语言形式到另一种语言形式的转化:编译时从高级语言程序到低级语言程序的等价转化 问题细化: 理解高级语言程序(源程序) 了解目标程序及其运行环境 实现翻译 词法分析、语法分析、语义分析 中间代码(目标代码)、运行时的存储分配 实现翻译:属性翻译、符号表、出错处理 一个编译过程需要的知识 文法的基本知识 词法分析(根据状态图编写程序) 不需要讲自动机理论,仅占教材《词法分析》约1/3的内容 语法分析(递归子程序法) 没有复杂的理论和算法,最简单的一种分析法 中间代码、符号表、存储分配、出错处理 属性翻译文法、语法制导的翻译(递归子程序法) 编译过程 词法分析 语法分析 语义分析、生成中间代码 生成目标程序 词法分析程序:状态图,手工编写程序 语法分析程序:递归子程序法,编写程序 语义分析和代码生成:语法制导的翻译(属性翻译文法) 完成了一个翻译过程 如果只生成中间代码(伪代码): “编译-解释执行”系统 中间代码(伪代码) 解释程序 第二步 我们已经可以做一个编译了 如何做更好的编译 现有方法的局限性:如何处理更复杂的文法 不同文法类的层次结构 第三步 如何更容易地编写编译系统,更好的可靠性 编译的自动生成技术 自动机和词法分析程序的自动生成技术 语法分析的自动生成技术 第四章 语法分析 语法分 析方法 自顶向下分析法 自底向上分析法 (1) 递归子程序法 (2) LL(1)分析法 (算法和自动生成) (1)算符优先分析法 (算法和自动生成) (2)LR分析法 (算法和自动生成--YACC) 复杂的理论在做什么? 词法分析 语法分析 语义分析、生成中间代码 生成目标程序 词法分析程序:状态图,手工编写程序 语法分析程序:递归子程序法,编写程序 语义分析和代码生成:语法制导的翻译(属性翻译文法) 词法分析程序的自动生成:有穷自动机,LEX 自顶向下分析法: 自底向上分析法 第四步 如何获得更好的结果 编译优化技术 进一步的提高要求:优化 词法分析 语法分析 语义分析、生成中间代码 代码优化 生成目标程序 词法分析程序:状态图,手工编写程序 语法分析程序:递归子程序法,编写程序 语义分析和代码生成:语法制

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档