您的当前位置:首页正文

编译原理学习心得

2024-01-12 来源:客趣旅游网
编译原理学习心得

编译原理学习心得1

编译程序在计算机科学与技术的发展历史屮发挥了巨大作 用,是计算机系统的核心支撑软件。而〃编译原理〃这门课程一直 以来是国内外大学计算机相关专业的重要课程。因为它的知识结 构贯穿程序设计语言、系统环境以及体系结构,能以相对的视角 体现从软件到硬件以及软硬件协同的整机概念。其理论基础又涉 及形式语言与自动机、数据结构与算法等计算机学科的许多重要 方面,为联系计算机科学理论和计算机系统的典范。

虽然编译原理这门课程在大多数的人里认为枯燥无味,学起 来就像看天书一样。然而学习这门课程还是有一定的好处的。比 如可以更加容易的理解在一个语言种哪些写法是等价的,哪些是 有差异的,可以更加客观的比较不同语言的差异,并且学习新的 语言的效率也会更加高,语言转换也会更加游刃有余。

不学〃编译原理〃这门课程的话,自己的编程思想会很浅显。 而且编程也只仅仅停留在编程上,无法深入理解其中的原理。

学习编译原理的话,从文法、正规式、NFA与DPA的定义, 下手,要用心动脑去体会

编译原理学习心得2

从联系最紧密的操作系统来说吧,你写多线程/多进程的程 序就得和操作系统的知识打交道。写多线程得加锁吧,临界区、 死锁的四个条件Z类的标准的操作系统的内容吧(不得不吐槽一 下,某国内一线电商干了三年的程序猿,写多线程居然不知道加 锁,也是醉了)。进程间通信的几种方式什么管道、socket.共享 内存等,这也是操作系统的内容吧。文件系统,这也是经常要打 交道的东西。还有内存什么的,你做Android开发,这些里边 有很多东西都在系统层面被封装好了,但是你要是不知道原理, 一旦出了错根本无从调试,况且你该不会打算写一辈子写 Android就是填逻辑吧。

然后,是编译原理,普通的程序猿是接触不到编译器或者虚 拟机的开发的。但是这并不意味着编译原理就用不到。说个最常 见的读取配置文件,只要你的配置文件有自定义的语法,你就要 用编译原理的东西。还有类似于自动生成代码啦、正则表达式啦 这些都算是编译原理的内容。你既然是写Java的不了解虚拟机 怎么可以,最基本的字节码总是需要能看懂的吧,分析一些疑难 杂症的时候字节码还是很有用的。

最后,是计算机原理,如果只是做应用开发的话计算机原理 其实不必要掌握的多深入,但是一些基本的概念还是要清楚的。 比如寄存器、缓存、屮断什么的,关键的时候可以帮助你调试。 在一些对性能要求非常高的场合,也是很有作用的。此外,学了 计算机组成基本上汇编差不多能够看懂了吧,这个对于优化代 码、查错、反

汇编还是很有用的。

编译原理学习心得3

经过一个星期的编译原理课程设计,本人在刘贞老师的指导 下,顺利完成该课程设计。通过该课程设计,收获颇多。一、 对实验原理有更深的理解 通过该课程设计,掌握了什么是编译 程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了 编译程序总流程框图,了解了编译程序的生成过程、构造工具及 其相关的技术对课本上的知识有了更深的理解,课本上的知识师 机械的,表面的。通过把该算法的内容,算法的执行顺序在计算 机上实现,把原来以为很深奥的书本知识变的更为简单,对实验 原理有更深的理解。二、对该理论在实践中的应用有深刻的理 解通过把该算法的内容,算法的执行顺序在计算机上实现,知 道和理解了该理论在计算机屮是怎样执行的,对该理论在实践屮 的应用有深刻的理解。

三、激发了学习的积极性通过该课程设计,全面系统的理 解了编译原理程序构造的一般原理和基本实现方法。把死板的课 本知识变得生动有趣,激发了学习的积极性。把学过的计算机编 译原理的知识强化,能够把课堂上学的知识通过自己设计的程序 表示出来,加深了对理论知识的理解。以前对与计算机操作系 统的认识是模糊的,概念上的,现在通过自己动手做实验,从实 践上认识了操作系统是如何处理命令的,如何协调计算机内部各 个部件运行,对计算机编译原理的认识更加深刻。课程设计中程 序比较复杂,在调试时应

该仔细,在程序调试时,注意指针,将 不必要的命令去除。在这次课程设计中,我就是按照实验指导 的思想来完成。加深了理解文件系统的内部功能及内部实现,培 养实践动手能力和程序开发能力的目的。四、理解了该知识点 以及学科之间的融合渗透本次课程设计程序部分是用C语言编 写的,把《计算机操作系统》,《编译原理》,《算法分析与设 计》《C语言》四门学科联系起来,把各个学科之间的知识融合 起来,把各门课程的知识联系起来,对计算机整体的认识更加深 刻。使我加深了对《计算机操作系统》,《编译原理》,《算法 分析与设计》紅语言》四门课程的认识。

编译原理学习心得4

一周的课程设计很快过去,总体感觉得做得很不爽。因为考 试的原因,所有想尽快把这个课程设计做完,所以就直接改了老 师的程序,以为这样会快一些,事实证明,确实如此,但是做起 来很不顺手,程序员更讨厌的是看别人的程序。不知道变量的含 义,函数的作用。还有就是对vc不是很熟,不仅开发环境不熟, 就连c (其实应该说是c)的一些常用函数都忘得一干净,就好比字 符转化为整型(atoi)和整型转化为字符型(itoa)这两个函数,根本 不认识,还是在google

±搜索到的资料。c确实有很多不完美的 地方,我最烦的就是指针,

指来指去的很让人头疼。还有就有字 符串的转换等一些操作,没有

java来得方便。如果自己独立编写 代码的话,我会首先考虑用java,

其次考虑用c#,最后才用c o 至于用什么aspjsp来做,我也可以做,

这些动态网页语言都接 触过,只可惜自己技不如人,不能在两天的时间内,把程序编出 来,只能用最快的方法,用现成的改。因考虑到编译是一门考研 科目,所以自己打算在考试结束以后再完完整整地做一个。总的 来说,课程设计加深了自己对编译这门课的理解,发现自己还有 很多的地方要复习,甚至还有知识点的理解偏差。一定在考试把 所有的漏动填平。

编译原理学习心得5

通过这一学期的学习,我觉得编译原理是一门理论性很强的 课程,从文法和语言的概念到LL⑴文法和LR(O)文法的分析,几 乎都是对具体问题的抽象。因而,我们需要更多的时间来理解、 掌握相关的知识,当然在这一过程中也存在很多问题,比如我们 后期学习具体文法的分析方法时,对于文法的概念不够清晰,影 响了上课的效率,知道老师再次给我们讲解了文法等基础的知识 点,我们才慢慢掌握后面所学的LL(1)文法等,也发现了知识点 之间的关联。此外,这门课程的课时被安排得很少,一周只有一 次,这样很不利于我们对这门重要课程的理解和掌握。但是我觉 得我们很幸运,因为老师在有限的课程屮尽量将知识点以比较容 易接受的方式给我们讲解,教我们用简单的方法理解记忆不同的 知识,对于我们提出的问题,无论课上或是课外,老师一直是不 厌其烦,甚至利用课余时间为我们讲解重要的难题。

编译原理这门课程不仅仅在于其本身的理论价值,更在于为 我

们解决问题提供的思维方式和方法。从LL⑴到LR(O),问题不 断被解决的同时,又有一个个新的问题提了出来。对计算机语言 世界的知识积累,像滚雪球一样越滚越大。这个逐渐递进,逐渐 解决问题的过程对我来说是收获很大的。整个过程好像踏着前人 研究编译理论的路线,不断感觉他们遇到的问题,更重要的是他 们解决问题的思路。编译原理的课程带给我的不只是如何去编译 程序这样的理论知识,相信更重要的是一种如何〃自动计算〃的思 路。通过对相关编译问题的具体分析,让我体会最深的是一种〃自 动计算〃的思想,同时完成编译试验后,更是感到了一种“自动计 算〃的快乐。〃然而我明白自己虽然对编译有了一定的了解,我懂 得了文法的分析,学会了构造确定和非确定有限自动机,学会了 LL(1)文法和LR(O)文法等,但是并没有完全掌握,对于这些知识 点的实质性和其他方面,更是认识不深。作为一名学习计算机科 学与技术的学生,我明白编译原理是软件工程的基础,课程的结 束并不意味着学习的结束,只有通过以后的学习,才能更深入地 了解编译原理。

编译原理学习心得

因篇幅问题不能全部显示,请点此查看更多更全内容