第二章 高级语言及其语法描述

   其实还是觉得自己学些东西听一遍之后就会很容易就忘记,总有种不过脑的感觉,其实这种感觉持续了一个学期了,感觉自己就是在死学,然后没有具体的学习规律,上半学期也是一直在写程序,进展很慢,几乎没有进展,耐心什么的都被消磨的很厉害,有时候就觉得自己就算是一直在自习室或者图书馆里面穿梭也没有什么具体的收获,一学期就这样浑浑噩噩的过去了,这学期有了考研这个目标就开始规律了很多,也开始慢慢的找到了调整自己的办法,但是有时候也会耐不住性子,只想着往前赶学知识,报了一个数学班,自己复习预习的速度跟不上老师的进度,就会一直想着往前赶着学习,觉得自己学的不踏实,其实想着理论和代码应该合理的分配一下时间,觉得自己在做这件事情力不从心的时候也是要换一个东西来学,以免自己被消磨的不成样子。这是最近的一些想法,下面进入正题。
       这一章的内容我其实自己想整理不出大体框架和知识来,然后就自己重新看了一遍,整理出了书面笔记并且整理了知识框架,编译原理主要是讲了程序中构造允许出现的结构,即文法。而这一章讲了高级程序语言的基本概念还有上下文无关文法的东西,主要是上下文无关文法(见上以下图片)。第二章 高级语言及其语法描述
      这一章我事先做的题再整理的相关知识,发现做题的时候其实还是有很多似懂非懂的东西,比如第6题:在座的时候考的就是最基本最左(最右)推导的概念,概念懂了,就很简单,,这个题我还算是可以做的出来。第7题:是给我们语言然后让总结文法,其实这种东西,靠的还是基础概念,还有自己的组织力,这个题要通过几个产生式,才能组织出一个文法,我写完一种文法之后,和答案对比也不一样,也总觉得一种语言不会对应一种文法,上网查了查,证实了我的想法,一种语言可能存在不同的文法与之对应,所以我不能判定自己的答案是否正确,主要还是不会判断。第八题也是最基本的概念问题,就不在详细说了,第九题:证明文法的二义性只要举出例子就好了,找出两个不同的最右推导。第十题:把文法改写成无二义性的主要非终结符的替换。第十一题:前三个题在课上就做过类似的例题,就还算顺利,第四小题的时候是在不会写,看了答案之后,其实也还是不算明白,最后梳理了知识之后就算是恍然大悟,通过两个产生式的相互嵌套,算是递归的方法吧,就能把这个题做出来了,看了看12题。这主要是文法类型的理解,通过两个上下文无关文法的交和补运算,算出来了题目所给的语言(不是上下文无关的),证明此题。
         这一章主要还是要记得就是概念和理论的吧。做的题也是通过基础的概念来延伸的。但是通过语言来写文法的时候,也是就算是写完了也不能确定自己的正确性,这是最苦恼的,编译原理主要还是要通过对概念的加深性的理解吧,这本书的理论性很强,,主要就是理解加记忆,所以提高课堂效率,及时的总结知识,加上习题的练习来学习这门课程算是我的学习方法吧,毕竟就像老师说的到了考研的时候,大部分的课下时间还是要用来复习考研的。