ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:25.47KB ,
资源ID:19213928      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19213928.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理心得体会Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理心得体会Word文档下载推荐.docx

1、 编译原理课程学习心得 编译原理是计算机专业的一门重要课程,正如教材第一章的引论所述,“编译程序是现代计算机系统的基本组成部分之一”。“一个编译程序就是一个语言翻译程序,语言翻译程序把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)的等价程序”。 通过这一学期的学习,我觉得编译原理是一门理论性很强的课程,从文法和语言的概念到LL(1)文法和LR(0)文法的分析,几乎都是对具体问题的抽象。因而,我们需要更多的时间来理解、掌握相关的知识,当然在这一过程中也存在很多问题,比如我们后期学习具体文法的分析方法时,对于文法的概念不够清晰,影响了上课的效率,知道老师再次给我们讲解了文法等基础的知识点

2、,我们才慢慢掌握后面所学的LL(1)文法等,也发现了知识点之间的关联。此外,这门课程的课时被安排得很少,一周只有一次,这样很不利于我们对这门重要课程的理解和掌握。但是我觉得我们很幸运,因为老师在有限的课程中尽量将知识点以比较容易接受的方式给我们讲解,教我们用简单的方法理解记忆不同的知识,对于我们提出的问题,无论课上或是课外,老师一直是不厌其烦,甚至利用课余时间为我们讲解重要的难题。 编译原理这门课程不仅仅在于其本身的理论价值,更在于为我们解决问题提供的思维方式和方法。从LL(1)到LR(0),问题不断被解决的同时,又有一个个新的问题提了出来。对计算机语言世界的知识积累,像滚雪球一样越滚越大。这

3、个逐渐递进,逐渐解决问题的过程对我来说是收获很大的。整个过程好像踏着前人研究编译理论的路线,不断感觉他们遇到的问题,更重要的是他们解决问题的思路。编译原理的课程带给我的不只是如何去编译程序这样的理论知识,相信更重要的是一种如何“自动计算”的思路。通过对相关编译问题的具体分析,让我体会最深的是一种“自动计算”的思想,同时完成编译试验后,更是感到了一种“自动计算”的快乐。”然而我明白自己虽然对编译有了一定的了解,我懂得了文法的分析,学会了构造确定和非确定有限自动机,学会了LL(1)文法和LR(0)文法等,但是并没有完全掌握,对于这些知识点的实质性和其他方面,更是认识不深。作为一名学习计算机科学与技

4、术的学生,我明白编译原理是软件工程的基础,课程的结束并不意味着学习的结束,只有通过以后的学习,才能更深入地了解编译原理。篇三: 编译原理课程设计心得体会 经过一个星期的编译原理课程设计,本人在刘贞老师的指导下,顺利完成该课程设计。 一、对实验原理有更深的理解 通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。 二、对该理论在实践中的应用有深刻的理解 通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了该理论在计算机中是怎

5、样执行的,对该理论在实践中的应用有深刻的理解。三、激发了学习的积极性 通过该课程设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法。以前对与计算机操 作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。 在这次课程设计中,我就是按照实验指导的思想来完成。 四、理解了该知识点以及学科之间的融合渗透 本次课程设计程序部分是用c语言编写的,把计算机操作系统,编译原理,算法分析与设计c语言四门学科联系起来,把各个学科之间的知识融合起来,把各门课程的知识联系起来,对计算机整体的认识更加

6、深刻。篇四:编译原理总结1编译程序: 从高级语言到汇编语言或机器语言的翻译程序2.源程序:用汇编语言或高级语言编写的程序3. 目标程序:用目标语言所表示的程序。 目标语言:介于源语言和机器语言之间的 “中间语言”,也可以是某种机器的机器语言,也可以是 某机器的汇编语言。4 翻译程序:将源程序转换为目标程序的程序称为翻译程序。5 赋值语句的语法规则: A:=V=E E:=T|E+T T:=F|T*F F:=V|(E)|C V:=标识符 C:=常数6 遍:对源程序(包括源程序中间形式)从头到尾扫描一次,并做有关的加工处理,生成新的源程序中间形式或目标程序,通常称之为一遍。优点:节省内存空间,提高目

7、标代码质量,逻辑机构清晰缺点:编译时间较长,会增加输入输出所消耗的时间,在内存许可下少用为妙7前端:通常将与源程序有关的编译部分称为前端。 包括词法分析,语法分析,语义分析,等分析部分后端:与目标机有关的部分称为后端。包括中间代码生成,代码优化,目标程序生成等综合部分8编译程序构成部分以及功能: (1)词法分析(扫描器):输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词及其有关属性,并转换成属性字。(2)语法分析(分析器):在词法分析的基础上,根据语言的语法规则,逐一分析词法分析时得到的属性字,检查语法错误,若没有错误,则给出正确的语法结构(如短语、子句、句子、程序段、程序等

8、)。(3)语义分析(语义处理):语法分析识别出的各类语法范畴,分析其含义,进行和初步翻译,产生介于源代码和目标代码之间的一种代码“中间代码”。或者直接生成目标代码。(4)优化:依据程序的等价变换规则,尽量压缩目标程序运行时所需的时间和所占的存储空间,以提高目标程序的质量(5)目标代码生成:把经过优化的中间代码转化成特定机器上的低级语言代码。9计算机执行用高级语言编写的程序途径有两种:解释方式和编译方式。 根本区别:是否生成了目标代码。 解释方式下,翻译程序事先并不对高级语言程序进行彻底翻译以得到机器代码,而是读入一条语句,就解释其含义并执行,然后再读入下一条语句,再解释执行,即按,源程序中语句

9、的动态顺序逐句地进行分析解释,并立即予以执行。 编译方式下,翻译程序先对高级语言程序进行彻底翻译并生成目标代码,然后再对目标代码进行执行,即对源程序的处理是先翻译后执行。简单来说解释方式不生成目标代码,编译方式生成目标代码10编译程序采用多遍扫描还是单编扫描需要考虑哪些因素 不一定,多遍编译器结构清晰,构造时间短,运行时需要内存少,产生的目标代码质量高,但时间效率低,应该根据具体情况决(1)语句的大小与结构,(2)机器规模(3)设计目的(4)设计人员的素质及数量。 11 比较LR(0),SLR(1),LR(1)和LALR(1)分析表的优缺点(1)LR(0)分析表局限性大,但其构造方法是其他构造

10、方法的基础(2)SLR分析表虽然不是对所有文法都存在,但这种分析表状态少,存储空间占用少,较易实现又极有实用价值。(3)规范LR分析表,即LR(1)分析表,它的,它的分析能力最强,能适用于一大类文法,但是实现代价过高,主要是体积过大 (4)LALR分析表的能力介于SLR分析表和规范LR分析表之间,稍加努力,就可以高效的实现。12比较LL(K)分析表与LR(K)分析法 共同点:(1)两者多借助于可能句柄左部的全部符号及向右看K个符号来确定所应执行的唯一动作,识别过程严格地从左到右扫描,无回溯,效率高。(2)都能及时察觉错误2。(3)识别程序都能自动生成。 区别:(1)两者都是严格地从左到右扫描,

11、名称中第一个L隐指这点,但LR分析技术利用的是最右推导(最左归约),由R隐指,LL(K)分析利用的是最左推导,由第二个L隐指。(2)LL(K)要求文法无左递归,满足无回溯的条件,而LR分析法则无此限制。(3)LL(K)是自上而下构造推导的,而LR(K)是自下而上构造归约的。 13语法制导翻译过程:对单词符号串进行语法分析,构造语法分析树,构造属性依赖图,遍历语法树并在语法树各结点处按语义规则计算顺序。14静态语义检查:类型检查,控制流检查,一致性检查,相关名字检查,名字的作用域分析。15引入中间代码的好处:(1)便于进行与机器无关的代码优化工作 (2)使编译程序更容易改变目标机(3)使编译程序

12、的结构在逻辑上更为简单明确,以中间语言为界限,编译前端和后端的接口更清晰。 16编译程序分类 (1)诊断编译程序 (2)优化编译程序 (3)交叉编译程序 (4)可变目标编译程序17编译程序工作过程5个阶段及其任务: (1)词法分析:任务是从左到右逐个字符的读入源程序,对构成源程序的字符流进行扫描和分解,进而识别一个个单词。(2)语法分析:任务是根据语法规则,分析并识别出各种语法成分,并经行语法正确性检查。(3)语义分析与中间代码生成:任务是对识别出的各种语法成分进行语义分析,并产生相应的中间代码。(4)目标代码生成:任务是把中间代码转换成特定机器上的低级语言代码。 18编译程序和解释程序(1)

13、编译程序需要在运行前将源代码译成目标代码,解释程序接受某个语言的程序并立即运行这个源程序(2)二者存储组织有着很大不同,编译程序处理时存储区要存储编译用时需要的各种表格;解释程序将分析结果存放在源程序区(3)编译程序动态性很差,可形成永久性可执行文件,解释程序动态性较好。19程序性合计语言范型:(1)强制(命令)式语言:c,fortron,pasal (2)函数式语言:ML,Lisp(3)基于规则(逻辑)的语言:prolog (4)面向对象语言:Ada,c+,java1.推导:自上而下的语法分析过程预测分析程序,递归下降分析法(最左推导)注:要求文法是LL(1)文法2.归约:自下而上的语法分析

14、过程简单优先分析法,算符优先分析法、LR分析法33.自下而上的语法分析过程思想自下而上的语法分析过程是一个最左归约的过程,从输入串开始。朝着文法的开始符号进行归约,直到到达文法的开始符号为止的过程 注意:输入串在这里是指从词法分析器送来的单词符号组成的二元式的有限序列 。 即:自左至右把输入串的符号一个一个移进栈,在移进过程中不断查看栈顶符号串,一旦形成某个句型的句柄时,就将此句柄用相应的产生式左部替换(归约),若再形成句柄,就继续替换,直到栈顶不再形成句柄为止,然后继续移进符号,重复上面的过程直到栈顶只剩下文法的开始符号,输入串读完为止,这样就认为识别了一个句子。1)初态时栈内仅有栈底符“#

15、”,读头指在最左边的单词符号上 .2)语法分析程序执行的动作:a)移进:读入一个单词并压入栈内,读头后移;b)归约:检查栈顶若干个符号能否进行归约,若能,就以产生式左部替代该符号串,同时输出产生式编号.c)识别成功:移进归约的结局是栈内只剩下栈底符号和文法开始符号,读头也指向语句的结束符.d)识别失败.令G是一个文法,S是文法的开始符号,假定是文法G的一个句型,如果有 S A且A 则称是句型相对于非终结符A的短语。特别是,如果有 A 则称是句型相对于规则A的直接短语,一个句型的最左直接短语称为该句型的句柄。注: 一个句型的语法树中任一子树叶节点所组成的符号串就是该句型的短语,当子树中不包含其他

16、更小的子树时,该子树结点所组成的字符串就是该句型的直接(简单)短语。素短语: 一个递归的定义,至少含有一个终结符,并且除它自身之外不在含有任何更小的素短语,(所谓最左素短语就是处于句型最左边的素短语)。简单优先分析法:1.确定相邻文法符号之间的优先关系 在句型中,句柄内各相邻符号之间具有相同的优先级,相同优先级用“ ”由于句柄要先归约,所以规定句柄两端符号的优先级要比位于句柄之外的相邻符号的优先级高,优先级低于表示为“”,优先级高于表示为“ ”某句型中:N1.Ni-1定义:一个文法G,如果它不含e产生式,也不含任何右部相同的不同产生式,并且它的任何符号对(X,Y)X,Y是终结符或非终结符或者没

17、有关系,或者存在优先级相同或低于、高于等关系之一,则这是一个简单优先文法。1LR(0) 文法:该文法的以 LR(0) 项目集为状态的识别规范句型活前缀的 DFA 中没有冲突状态。2 SLR(1) 文法:该文法的以 LR(0) 项目集为状态的识别规范句型活前缀的 DFA 中有冲突状态,冲突可用 FOLLOW 集解决。 该文法不是 SLR(1) 文法。因为 FOLLOW(S)=a,b,# ,所以无法解决冲突3算符优先:(T) () (6章)1.静态语义检查包括: (1)类型检查 (2)控制流检查 (3)一致性检查 (4)相关名字检查 (5)名字的作用域分析2.引入中间代码的好处:(3)使编译程序的

18、结构在逻辑上更为简单明确,以中间语言为界限,编译前端和后端的接口更清晰。(1章) 1.源程序: 用编译语言或高级语言编写的程序目标程序:用目标语言表示的程序翻译程序: 将源程序转换为目标程序的程序。2.编译程序分类 (1)诊断编译程序 (2)优化编译程序 (3)交叉编译程序 (4)可变目标编译程序3.编译程序工作过程5个阶段及其任务:4.编译程序和解释程序5.程序性合计语言范型:prolog(4)面向对象语言:6.构造编译程序必须掌握的三方面内容: (1)源程序 (2)目标语言 (3)编译方法7.编译前端和后端前端:通常指与源程序有关的编译部分,包括词法分析,语法分析,语义分析,特点是与源程序

19、有关。与目标机有关的部分,包括中间代码生成,代码优化,目标程序生成,特点是与目标机有关。则称是句型相对于规则A的直接短语,一个句型的最左直接短语称为该句型的句柄。N1.Ni-1定义:篇五:编译原理课程设计学习心得体会 一周的课程设计很快过去,总体感觉得做得很不爽。因为考试的原因,所有想尽快把这个课程设计做完,所以就直接改了老师的程序,以为这样会快一些,事实证明,确实如此,但是做起来很不顺手,程序员更讨厌的是看别人的程序。不知道变量的含义,函数的作用。还有就是对vc 不是很熟,不仅开发环境不熟,就连c (其实应该说是c)的一些常用函数都忘得一干净,就好比字符转化为整型(atoi)和整型转化为字符

20、型(itoa)这两个函数,根本不认识,还是在google上搜索到的资料。c 确实有很多不完美的地方,我最烦的就是指针,指来指去的很让人头疼。还有就有字符串的转换等一些操作,没有java来得方便。如果自己独立编写代码的话,我会首先考虑用java,其次考虑用c#,最后才用c 。至于用什么asp,jsp来做,我也可以做,这些动态页语 言都接触过,只可惜自己技不如人,不能在两天的时间内,把程序编出来,只能用最快的方法,用现成的改。因考虑到编译是一门考研科目,所以自己打算在考试结束以后再完完整整地做一个。总的来说,课程设计加深了自己对编译这门课的理解,发现自己还有很多的地方要复习,甚至还有知识点的理解偏

21、差。一定在考试把所有的漏动填平。篇六:编译原理实验心得编译原理实验心得第一章、引论经过这一章节的学习我学到了如下知识:1.自1954年FROTRAN语言问世以来,计算机高级语言的到迅速发展。高级语言给编程带来了极大的方便,但是计算机只能直接执行用机器语言编写的程序,不能直接执行用高级语言编写的程序。要执行高级语言程序,必须提供该语言的翻译程序。翻译有编译和解释两种方式。编译方式是先将源程序翻译成目标程序,然后再执行目标程序,相应的翻译程序称为编译程序。解释方式是边翻译边执行,相应的翻译程序称为解释程序。2、编译理论和技术主要研究和讨论编译程序的构造和设计原理。3、编译程序一般包括词法分析程序、

22、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、表格处理程序和出错处理程序等。4、编译过程可采用分遍形式,及编译过程可由一遍或多遍完成。5、对于具有自编译性的高级语言,可运行自展技术构造其编译程序,即将源程序分解成核心部分和扩充部分,对核心部分进行多次扩充之后得到源语言。6、一个具有自编译性的高级语言在宿主机上的编译程序可以移植到目标机上。7、LEX是一个有代表性的词法分析程序生成器。YACC是一种基于LALR(1)分析法的语法分析程序生成器。凡是有助于减少编写翻译程序工作的软件或工具包,统称为翻译程序的编写系统。8、传统的串行编译程序只适应于SISD结构计算机,具有并行处理功能的并行编译程序则适于SISD和MISD结构计算机。第二章、形式语言概论1、形式语言由Chomsky于1956年提出,其理论的形成和发展推动了计算机考完学技术发展。形式语言理论是编译原

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1