编译原理论文

编译原理心得体会

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法,在计算机本科教学中占有十分重要的地位。

该课程理论性与实践性都很强,我们在学习 是普遍感到内容非常抽象,不易理解,内容多且繁琐,难以完整、全面地掌握编译原理的有关知识,更不用说灵活运用编译原理知识从事相关设计或应用于其他领域。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对我们提供了系统而有效的训练,有利于提高软件人员的素质和能力。

在我们学习编译原理以前,都认为编译原理只能应用在写程序语言的编译器上,觉得用处不大,学习兴趣不高。而在后来的学习中,我们逐渐认识到计算机专业的学生,除了要会编写程序语言之外,还应该了解它是如何被计算机所识别,这才是真正并且透彻地学习软件。另外,编译器中每一个模块的编写,都能对我们的编程能力的提高有很大帮助。在今后若从事软件工程,这门课程也能够对编写程序有所帮助。

为了能够系统掌握这门专业课,我们把编译原理分为以下几个模块:①语言和文法;②词法分析;③语法分析;④语义分析和中间代码生成;⑤代码优化和目标代码生成。

在学习的开始,我们需要掌握什么是编译,编译分为哪些阶段,编译程序和解释程序的区别等等。在做好了这些方面的准备后,开始了系统的学习。

语言和文法部分的知识包括文法基本概念及文法的二义性。基本概念有文法定义、推导、句型、句子等等。二义性文法是通过画语法树的方法来证明。

词法分析中的重点是有穷自动机DFA的生成以及DFA和正规式与正规文法的关系。还要熟练掌握NFA转换为DFA的方法及DFA的化简。

语法分析包括自上而下和自下而上分析。自上而下分析着重掌握LL(1)文法,自下而上分析重点掌握算符优先文法和LR(0)、SLR(1)文法。

语义分析重点是其功能,中间代码生成和语法制导翻译定义与方法。 最后,优化分为局部优化和循环优化,重点理解一些关键词,如基本块、流图等,要学会自己画出程序流图。用DAG图进行局部优化是重点。

在学习文法时,对文法的组成,用法都较为明了,而在真正做题时却感到十分吃力。例如给出了一个语言,要求写出它的上下文无关文法,就感到十分棘手,所以今后在这方面要加大练习量,以熟练掌握。

而在之后的词法分析和语法分析中,我感到在看基本原理时十分困难,通常要长时间钻研才能够有所了解,而一旦掌握了基本原理,做题时就感到十分顺畅了。例如,在刚接触到LR(0)文法时,我用了大量的时间去学习它的原理,掌握之后,在列LR(0)分析表和写分析过程时,只要思路清晰,就会比较顺畅,而且不会犯错。

下面是我认为的比较有效的学习编译原理的步骤:

1.先利用ANTLR之类的编译器生成工具,做一个小程序(如上面提到的HTML文件转化成纯文本文件的程序),所需知识只是正则表达式的基本知识和生成工具本身的使用方法(可以看联机帮助和网上教程(tutorial)来掌握). 这样做的好处是:

1)可以体会到编译原理的实用性,提高学习兴趣

2)入门容易,消除编译原理学习的畏难情绪.

3)获得词法分析器和语法分析器的感性认识,有利于加深对理论的理解.

4)获得编译器自动生成工具(compiler compiler)的使用经验,提高解决实际问题的能力.(实际工作很多都不是手编而是利用工具的)

2.象ANTLR之类的工具是开源(open source)的,可研究其源码,以便必要时自己手编分析程序.

3.回过头来看编译原理教材. 这时大概会发现,很多理论很容易懂,剩下的只有上面说的几个难点,多看几遍,重点突破.

4.结合教材所附源码,进一步加深对教材的理解。

以上就是我对这门课的心得体会。

编译原理心得体会

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法,在计算机本科教学中占有十分重要的地位。

该课程理论性与实践性都很强,我们在学习 是普遍感到内容非常抽象,不易理解,内容多且繁琐,难以完整、全面地掌握编译原理的有关知识,更不用说灵活运用编译原理知识从事相关设计或应用于其他领域。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对我们提供了系统而有效的训练,有利于提高软件人员的素质和能力。

在我们学习编译原理以前,都认为编译原理只能应用在写程序语言的编译器上,觉得用处不大,学习兴趣不高。而在后来的学习中,我们逐渐认识到计算机专业的学生,除了要会编写程序语言之外,还应该了解它是如何被计算机所识别,这才是真正并且透彻地学习软件。另外,编译器中每一个模块的编写,都能对我们的编程能力的提高有很大帮助。在今后若从事软件工程,这门课程也能够对编写程序有所帮助。

为了能够系统掌握这门专业课,我们把编译原理分为以下几个模块:①语言和文法;②词法分析;③语法分析;④语义分析和中间代码生成;⑤代码优化和目标代码生成。

在学习的开始,我们需要掌握什么是编译,编译分为哪些阶段,编译程序和解释程序的区别等等。在做好了这些方面的准备后,开始了系统的学习。

语言和文法部分的知识包括文法基本概念及文法的二义性。基本概念有文法定义、推导、句型、句子等等。二义性文法是通过画语法树的方法来证明。

词法分析中的重点是有穷自动机DFA的生成以及DFA和正规式与正规文法的关系。还要熟练掌握NFA转换为DFA的方法及DFA的化简。

语法分析包括自上而下和自下而上分析。自上而下分析着重掌握LL(1)文法,自下而上分析重点掌握算符优先文法和LR(0)、SLR(1)文法。

语义分析重点是其功能,中间代码生成和语法制导翻译定义与方法。 最后,优化分为局部优化和循环优化,重点理解一些关键词,如基本块、流图等,要学会自己画出程序流图。用DAG图进行局部优化是重点。

在学习文法时,对文法的组成,用法都较为明了,而在真正做题时却感到十分吃力。例如给出了一个语言,要求写出它的上下文无关文法,就感到十分棘手,所以今后在这方面要加大练习量,以熟练掌握。

而在之后的词法分析和语法分析中,我感到在看基本原理时十分困难,通常要长时间钻研才能够有所了解,而一旦掌握了基本原理,做题时就感到十分顺畅了。例如,在刚接触到LR(0)文法时,我用了大量的时间去学习它的原理,掌握之后,在列LR(0)分析表和写分析过程时,只要思路清晰,就会比较顺畅,而且不会犯错。

下面是我认为的比较有效的学习编译原理的步骤:

1.先利用ANTLR之类的编译器生成工具,做一个小程序(如上面提到的HTML文件转化成纯文本文件的程序),所需知识只是正则表达式的基本知识和生成工具本身的使用方法(可以看联机帮助和网上教程(tutorial)来掌握). 这样做的好处是:

1)可以体会到编译原理的实用性,提高学习兴趣

2)入门容易,消除编译原理学习的畏难情绪.

3)获得词法分析器和语法分析器的感性认识,有利于加深对理论的理解.

4)获得编译器自动生成工具(compiler compiler)的使用经验,提高解决实际问题的能力.(实际工作很多都不是手编而是利用工具的)

2.象ANTLR之类的工具是开源(open source)的,可研究其源码,以便必要时自己手编分析程序.

3.回过头来看编译原理教材. 这时大概会发现,很多理论很容易懂,剩下的只有上面说的几个难点,多看几遍,重点突破.

4.结合教材所附源码,进一步加深对教材的理解。

以上就是我对这门课的心得体会。


相关内容

  • 西安邮电大学毕业设计(论文)任务书--徐波
  • 西 安 邮 电 大 学 毕 业 设 计 (论文) 任 务 书 学生姓名 徐波 指导教师 董梁 职称 讲师 学院 计算机学院 专业 软件工程 题目 单处理器的编译器设计与实现 一.任务与要求 首先编译器进行词法分析,也就是要把那些字符串分离出来:接下来进行语法分析,即在词法分析的基础上将单词序列组合成 ...

  • 编译原理课程设计报告论文格式
  • 课程设计报告写作规范 一.论文要求 学位论文应使用标准简化汉字和法定的计量单位.学位论文中采用的术语.符号.代号全文必须统一.论文中使用新的专业术语.缩略语.习惯用语,应加以注释. 二.论文顺序 论文一般应包括以下部份,并按以下顺序装订 1.封面: 2.目录: 3.正文: 4.附录: 5.参考文献: ...

  • 汉明码论文
  • 基于C51的汉明码编码器和译码器的设计 摘要:数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏.接收端收到后可能发生错误判决.由乘性干扰引起的码间串扰,可以采用均衡的办法纠正,而加性干扰的影响可以采用差错控制的措施了.汉明码就是一种能纠正一位错码且编码效率较高的线性分组码,它能纠正一个错码或 ...

  • 期刊论文摘要写作 辑文编译-4027
  • 期刊论文摘要写作 期刊论文摘要是对论文主要内容的概述,论文摘要通常分为两种,一种是叙述式摘要,以陈述的内容撰写的摘要:另一种则为结构式摘要,结构式摘要一般分为目的.方法.结果和结论四部分. 期刊论文摘要既要全面.简明地反映全文主要内容,更要突出反映该项实验.研究的新观点.新理论.新设计.新材料.新方 ...

  • 一个动态网站自动生成发布系统
  • 爹蒸j>■予期篇蔫篇萱国盛潮馏镛名蜃謦:||":jji!:|一}}i÷It:i:::ijj』|.『|s .i:ii誊雾萋磐萋9|| i茸多磐霪雾季 摘要本文以新闻网页为例,介绍了一个简单而实用(正在实际使用)的网页自动生成发布系统,特别适用于具有相同数据 格式.数量大.更新快的场合. ...

  • 四路抢答器设计毕业论文
  • 题目:四路抢答器设计 一.设计目的 1.学习数字电路中的优先编码器.锁存器 .译码器.数据显示管的综合应用. 2.熟悉抢答器的工作原理 3.了解数字系统设计,调试及故障排除方法. 二.设计要求 1.四组参赛者进行抢答,当抢答组按下抢答按钮时,抢答器能准确的判断出抢答者. 2.抢答器应具有互锁功能,及 ...

  • 外国科学技术名著排行榜
  • 外国科学技术名著排行榜: 物种起源(18 次) 自然哲学的数学原理(8 次) 狭义与广义相对论浅说(8 次) 科学革命的结构(6 次) 科学史(5 次) 血液循环论(5 次) 几何原本(4 次) 科学的社会功能(3 次) 人类的由来(2 次) 生命的科学(2 次) 生命是什么(2 次) 实验医学研究 ...

  • 文艺理论与批评参考书目
  • 文艺理论参考书目 1. 阿多诺:<美学理论>,王科平译,成都:四川人民出版社,1998年版. 2. 吕特·阿莫西等:<俗套与套语>,丁小会译,天津:天津人民出版社,2003年版. 3. 艾略特:<艾略特文学论文集>,李赋宁译注,南昌:白花洲文艺出版社,1994年版 ...

  • 基于AT89C51数字温度报警器论文
  • 毕业设计(论文) 学 生 姓 名: 专 业: 院 系: 设计(论文)题目: 指 导 教 师: 学 号: 应用电子技术 电子工程学院 基于AT89S51温度报警器 2013 年 6月 3日 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文 ...