《编译原理》教学过程中的思考与探讨

《编译原理》教学过程中的思考与探讨

ID:25413425

大小:59.00 KB

页数:8页

时间:2018-11-20

《编译原理》教学过程中的思考与探讨_第1页
《编译原理》教学过程中的思考与探讨_第2页
《编译原理》教学过程中的思考与探讨_第3页
《编译原理》教学过程中的思考与探讨_第4页
《编译原理》教学过程中的思考与探讨_第5页
资源描述:

《《编译原理》教学过程中的思考与探讨》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《编译原理》教学过程中的思考与探讨    二、认清编译原理,明确学习意义,激发学生的热情    1.帮助学生认清编译原理的作用和地位  在教学过程中,很多学生都有这样的疑问:编译原理学的是什么?学习它有什么作用?  我们知道,目前的计算机能执行的都是非常低级的机器语言,一个用高级语言编写的源程序最终如何在计算机上执行呢?这就是编译原理要解决的问题。概括地说,编译原理课程介绍编译器构造的一般原理、基本设计方法和主要实现技术。编译原理课程通过编译器的各个组成部分来解释高级语言编写的源程序如何翻译成计算机能够执行的机器语言。这个翻译的过程涉及程序设计语言、机器结构、形式语言理论、类型论

2、、算法和软件工程等方面的知识。例如,对软件工程来说,编译程序是一个很好的实例(基本设计、模块划分、基于事件驱动的编程等),编译原理课程所介绍的概念和技术可以用到一般的软件设计中。  事实上,通过编译原理的学习,有助于学生快速理解、定位和解决在程序编译、测试与运行中出现的问题。另外,编译原理的学习对熟悉编译过程、掌握计算机高级语言的生成机制、理解具体程序的运行状态起着关键作用。  2.帮助学生克服畏难心理,提高学生的兴趣  在教学的过程中,很多学生认为他们今后的工作不会涉及到编译原理的理论和技术,编译原理没有实际的用处,学习起来就非常的枯燥无味。其实这是对编译原理的一种错误认识。该

3、课程中的原理除了可以用于分析编译器以外,还对诸如人工智能、并行处理技术等课程的学习具有指导作用。例如,利用编译原理的理论设计出“翻译风”这样的软件。与此同时编译原理课程可以帮助学生更进一步地理解和综合应用离散数学、高级语言、数据结构、汇编语言等专业基础课程的知识。例如,编译程序应用了多种数据结构,在词法分析阶段使用状态转换图来识别各种单词;在语法分析中使用语法树等来进行语法分析;在存储分配时使用栈式结构和堆式结构进行存储空间的分配。本门课程学习对其它课程的学习和今后很多领域的理论研究具有深远的意义,如计算机软件技术领域、计算机系统结构领域、人工智能系统的机器学习领域、并行处理技术

4、等领域。  鉴于“编译原理”这门专业课程的特点,在教学过程中端正学生的认识,帮助学生克服畏难情绪,肯定学生所具有的能力,让学生明白以他们掌握的计算机知识,有足够的能力学好《编译原理》这门课程。鼓励他们同样可以利用学到的理论技术设计出类似“翻译风”这样的软件,帮助学生建立信心,发挥他们的才智,提高学习的热情。    三、把握课堂教学内容    1.整体把握一条主线,领会每个阶段的精髓,各个击破  编译器(编译程序)可以分为词法分析、语法分析、语义分析、中间代码生成,代码优化和目标代码生成这六个阶段,每个阶段还会伴有符号表管理和出错管理。在第一章编译器概述中就把编译器化分成这六个阶段

5、,同时还简要的描述了这六个阶段各自的任务,这是贯穿整个课程的一个主线,整个课程就是按这六个阶段组织进行的。所以一开始让学生把握这条主线,对课程有一个总体的把握,理解编译的过程。  当学生从整体上理解编译器的结构之后,然后分章节对各个部分进行细致地教学。按照编译过程的划分,把课程分为六章内容,每章都有它的精髓所在,只要掌握了每章的精髓,就能掌握编译的整个过程。词法分析的精髓主要是词法分析的构造、有限自动机理论的应用;语法分析的精髓主要是语法分析的两种方法——自上而下分析法和自下而上分析法;语义分析主要是属性文法、语法制导定义以及翻译方案;中间代码主要描述了中间代码常见的几种表示形式

6、、各种语法结构如何进行语法制导翻译形成中间代码;代码优化主要围绕如何从时间和空间上进行优化,尽可能提高执行的效率展开,分别讲述了局部优化和循环优化;目标代码生成主要是目标代码生成算法的实现及寄存器的分配。这六个部分相辅相成,互有联系,掌握每个阶段的精髓,各个击破,这样学生比较容易理解和接受。  2.课堂讨论式  在《编译原理》的教学过程中,课堂上不能采取“灌输式”教学,上面老师讲解的充满激情,下面学生听得昏昏欲睡,随着时间的积累,学生不理解的知识越来越多,就会慢慢失去学习的兴趣。所以,要注重与学生的交流,在课堂上可以采取集体讨论和分析的方法,让学生说出自己在学习的过程遇到的问题以

7、及解决问题的方法。例如,数据对齐是由硬件特点造成的对存储分配的一点约束,这个概念有的教材并没有提到或者只是一带而过。针对数据对齐问题,有一个C语言的例子:  typedefstructa  {charcl;  longi;  charc2;  doublef;  }a;  typedefstruct_b  {charcl;  charc2;  longi;  doublef;  )b;  main()  {printf(“Sizeofdouble,long,char=%d,%d,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。