对编译原理学习的浅谈
专业:******* 学号:********** 姓名:***
大三半学期过去了,无时不刻感觉到时间真的过得好快,发现它是那么的残忍,从来不给你任何驻足的机会。
回首这学期对编译原理的学习,下面简单谈谈我对这门课学习的理解。
通过这一学期的学习,我们知道了概括。
编译原理课程主要介绍的事编译器构造的一般原理、基本设计方法和主要实现技术。
编译原理课程通过编译器的各个组成部分来解释高级语言编写的源程序如何翻译成计算机能够执行的机器语言。
这个翻译的过程涉及程序设计语言、机器结构、形式语言理论、类型论、算法和软件工程等方面的知识。
例如,对软件工程来说,编译程序是一个很好的实例,编译原理课程所介绍的概念和技术可以用到一般的软件设计中。
编译原理的学习对我们有很大的帮助。
首先:通过编译原理的学习,有助于大家快速理解、定位和解决在程序编译、测试与运行中出现的问题。
另外,编译原理的学习对熟悉编译过程、掌握计算机高级语言的生成机制、理解具体程序的运行状态起着关键作用。
在学习的过程中,很多同学认为我们今后的工作不会涉及到编译原理的理论和技术,编译原理没有实际的用处,学习起来就非常的枯燥无味,因此对这门课没有足够的认识。
其实这是对编译原理的一种错误认识。
该课程中的原理除了可以用于分析编译器以外,还对诸如人工智能、并行处理技术等课程的学习具有指导作用。
与此同时编译原理课程可以帮助哦我我们更进一步地理解和综合应用离散数学、高级语言、数据结构、汇编语言等专业基础课程的知识。
例如,编译程序应用了多种数据结构,在词法分析阶段使用状态转换图来识别各种单词;在语法分析中使用语法树等来进行语法分析;在存储分配时使用栈式结构和堆式结构进行存储空间的分配。
本门课程学习对其它课程的学习和今后很多领域的理论研究具有深远的意义。
我觉得要想学好编译原理这门课,一定要做到以下两点,达到知识的融会贯通。
对以后学习其他知识打下基础,同时对以前的一些知识有更深的认识。
第一:.整体把握一条主线,领会每个阶段的精髓,各个击破。
编译器(编译程序)可以分为词法分析、语法分析、语义分析、中间代码生成,代码优化和目标代码生成这六个阶段,每个阶段还会伴有符号表管理和出错管理。
在第一章编译器概述中就把编译器化分成这六个阶段,同时还简要的描述了这六个阶段各自的任务,这是贯穿整个课程的一个主线,整个课程就是按这六个阶段组织进行的。
所以一开始我们如果能够把握住这条主线,对课程有一个总体的把握,理解编译的过程,然后学习起来也会感觉到比较轻松。
当我们从整体上理解编译器的结构之后,然后分章节对各个部分进行细致地阅读理解。
按照编译过程的划分,把课程分为六章内容,每章都有它的精髓所在,只要掌握了每章的精髓,就能掌握编译的整个过程。
词法分析的精髓主要是词法分析的构造、有限自动机理论的应用;语法分析的精髓主要是语法分析的两种方法——自上而下分析法和自下而上分析法;语义分析主要是属性文法、语法制导定义以及翻译方案;中间代码主要
描述了中间代码常见的几种表示形式、各种语法结构如何进行语法制导翻译形成中间代码;代码优化主要围绕如何从时间和空间上进行优化,尽可能提高执行的效率展开,分别讲述了局部优化和循环优化;目标代码生成主要是目标代码生成算法的实现及寄存器的分配。
这六个部分相辅相成,互有联系,掌握每个阶段的精髓,各个击破,这样我们大家学习起来就会对整本书有个大概的了解,然后再针对性的坐题目,就会很好的学习到这本书。
第二:我们可以多跟老师交流,有什么不懂的问题一定要及时提出来。
课后如果还有不懂的问题同学们之间相互讨论,争取把每一个知识点都搞懂,这样做起题目来才能得心应手。
在上课的过程中,上面老师讲解的充满激情,下面有的同学听得昏昏欲睡,随着时间的积累,大家不理解的知识越来越多,就会慢慢失去学习的兴趣。
所以,我们一定要学会怎么学习,不放弃,遇到不懂问题要及时解决。
在课堂上可以采取互动的方法,有什么问题,我们一定要及时说出自己在学习的过程遇到的问题以及解决问题的方法。
还有一点大家比较容易忽略。
那就是《编译原理》对实践的要求比较高,所以实验课是培养大家实践能力的重要环节,是巩固和验证所学理论知识,培养大家分析问题、解决问题能力的重要环节。
但是在学习的过程中,一部分无法完成编译原理的实验。
即使告诉大家实验的思路和算法,有的还是不知如何入手,整个实验的效果很差。
为了提高实验效果,极大地促进大家对原理的理解,我们一定要认真完成经典的实验内容。
编译技术中有很多经典的算法,老师给我们的几个实验都是经典的实验。
大家一定要做好这几个实验,这对我们对书中的一些知识的理解都有很好的认识。
做好了这几个实验,一定可以达到一个新的高度。
对具体的一些问题有更深更透彻的认识。
我觉得如果大家能够很认真的做到以上几点,一定可以学好编译原理这门课。
世上无难事,只怕有心人,只要我们大家都带着一颗认真,努力的心,就算编译原理这门课再难,我们也有理由相信我们每一个人都能够学好。