- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)