1、计算机程序编译原理学习心得计算机程序编译原理学习心得编译原理是计算机专业的一门重要课程,正如教材:第一章的引论所述,“编译程序是现代计算机系统的根本组成局部之一。“一个编译程序就是一个语言翻译程序,语言翻译程序把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)的等价程序。下面就是豆花问答网小编带来的编译原理学习心得,希望能帮助大家!编译原理学习心得从联系最紧密的操作系统来说吧,你写多线程/多进程的程序就得和操作系统的知识打交道。写多线程得加锁吧,临界区、死锁的四个条件之类的标准的操作系统的内容吧(不得不吐槽一下,某国内一线电商干了三年的程序猿,写多线程居然不知道加锁,也是醉了)。进程间
2、通信的几种方式什么管道、socket、共享内存等,这也是操作系统的内容吧。文件系统,这也是经常要打交道的东西。还有内存什么的,你做 Android 开发,这些里边有很多东西都在系统层面被封装好了,但是你要是不知道原理,一旦出了错根本无从调试,况且你该不会打算写一辈子写 Android 就是填逻辑吧。然后,是编译原理,普通的程序猿是接触不到编译器或者虚拟机的开发的。但是这并不意味着编译原理就用不到。说个最常见的读取配置文件,只要你的配置文件有自定义的语法,你就要用编译原理的东西。还有类似于自动生成代码啦、正那么表达式啦这些都算是编译原理的内容。你既然是写 Java 的不了解虚拟机怎么可以,最根本
3、的字节码总是需要能看懂的吧,分析一些疑难杂症的时候字节码还是很有用的。最后,是计算机原理,如果只是做应用开发的话计算机原理其实不必要掌握的多深入,但是一些根本的概念还是要清楚的。比方存放器、缓存、中断什么的,关键的时候可以帮助你调试。在一些对性能要求非常高的场合,也是很有作用的。此外,学了计算机组成根本上汇编差不多能够看懂了吧,这个对于优化代码、查错、反汇编还是很有用的。编译原理学习心得经过一个星期的编译原理课程设计,本人在刘贞老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。 一、对实验原理有更深的理解通过该课程设计,掌握了什么是编译程序,编译程序工作的根本过程及其各阶段的根本任务
4、,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,外表的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。二、对该理论在实践中的应用有深刻的理解通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解。三、激发了学习的积极性通过该课程设计,全面系统的理解了编译原理程序构造的一般原理和根本实现方法。把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够
5、把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。课程设计中程序比拟复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。在这次课程设计中,我就是按照实验指导的思想来完成。加深了理解文件系统的内部功能及内部实现,培养实践动手能力和程序开发能力的目的。四、理解了该知识点以及学科之间的融合渗透本次课程设计程序局部是用c语言编写的,把计算机操作系统,编译原理,算法分析与设计c语言四门学科联系起来
6、,把各个学科之间的知识融合起来,把各门课程的知识联系起来,对计算机整体的认识更加深刻。使我加深了对计算机操作系统,编译原理,算法分析与设计c语言四门课程的认识。编译原理学习心得编译程序在计算机科学与技术的开展历史中发挥了巨大作用,是计算机系统的核心支撑软件。而“编译原理这门课程一直以来是国内外大学计算机相关专业的重要课程。因为它的知识结构贯穿程序设计语言、系统环境以及体系结构,能以相对的视角表达从软件到硬件以及软硬件协同的整机概念。其理论根底又涉及形式语言与自动机、数据结构与算法等计算机学科的许多重要方面,为联系计算机科学理论和计算机系统的典范。虽然编译原理这门课程在大多数的人里认为枯燥无味,
7、学起来就像看天书一样。然而学习这门课程还是有一定的好处的。比方可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的,可以更加客观的比拟不同语言的差异,并且学习新的语言的效率也会更加高,语言转换也会更加游刃有余。不学“编译原理这门课程的话,自己的编程思想会很浅显。而且编程也只仅仅停留在编程上,无法深入理解其中的原理。学习编译原理的话,从文法、正规式、NFA与DFA的定义,下手,要用心动脑去体会国际学院 0802 杨良燕 202319100227编译原理课程学习心得编译原理是计算机专业的一门重要课程,正如教材第一章的引论所述,“编译程序是现代计算机系统的根本组成局部之一。“一个编译程序就
8、是一个语言翻译程序,语言翻译程序把一种语言源语言书写的程序翻译成另一种语言(目标语言)的等价程序。通过这一学期的学习,我觉得编译原理是一门理论性很强的课程,从文法和语言的概念到LL(1)文法和LR0文法的分析,几乎都是对具体问题的抽象。因而,我们需要更多的时间来理解、掌握相关的知识,当然在这一过程中也存在很多问题,比方我们后期学习具体文法的分析方法时,对于文法的概念不够清晰,影响了上课的效率,知道老师再次给我们讲解了文法等根底的知识点,我们才慢慢掌握后面所学的LL(1)文法等,也发现了知识点之间的关联。此外,这门课程的课时被安排得很少,一周只有一次,这样很不利于我们对这门重要课程的理解和掌握。
9、但是我觉得我们很幸运,因为老师在有限的课程中尽量将知识点以比拟容易接受的方式给我们讲解,教我们用简单的方法理解记忆不同的知识,对于我们提出的问题,无论课上或是课外,老师一直是不厌其烦,甚至利用课余时间为我们讲解重要的难题。编译原理这门课程不仅仅在于其本身的理论价值,更在于为我们解决问题提供的思维方式和方法。从LL1到LR0,问题不断被解决的同时,又有一个个新的问题提了出来。对计算机语言世界的知识积累,像滚雪球一样越滚越大。这个逐渐递进,逐渐解决问题的过程对我来说是收获很大的。整个过程好似踏着前人研究编译理论的路线,不断感觉他们遇到的问题,更重要的是他们解决问题的思路。编译原理的课程带给我的不只是如何去编译程序这样的理论知识,相信更重要的是一种如何“自动计算的思路。通过对相关编译问题的具体分析,让我体会最深的是一种“自动计算的思想,同时完成编译试验后,更是感到了一种“自动计算的快乐。然而我明白自己虽然对编译有了一定的了解,我懂得了文法的分析,学会了构造确定和非确定有限自动机,学会了LL(1)文法和LR(0)文法等,但是并没有完全掌握,对于这些知识点的实质性和其他方面,更是认识不深。作为一名学习计算机科学与技术的学生,我明白编译原理是软件工程的根底,课程的结束并不意味着学习的结束,只有通过以后的学习,才能更深入地了解编译原理。