编译原理学习总结

最近通过龙书学习编译原理,里面很多东西不容易理解,尤其是读第一遍的时候,通常一头雾水,而且书中很多内容确实需要读到后面的内容才能理解,比如语法分析中讲规约过程,刚开始读会很不理解为什么这么规约,直到读完后面的内容。花了2个月时间,前八章终于看完了,书的内容没的说,看了收获不少,不过比较偏向理论,尤其是5-8章。有空看看《编译原理与实践》

第一章

是基本概念,读完这一章是为了有个基本了解,这一章是很容易顺利读完的

第二章

这一章介绍了书中很多重要的东西,而且有一个java例子(附录1中有完整代码)。这一章虽然也有些难理解的地方,但是跟后面比还是容易很多,很多东西都很基本,将附录1中代码弄明白,会对编译系统有个基本的理解。

第三章 词法分析

相比较语法分析,词法分析相对比较简单,就是一个自动机系统,学完这一章最基本应该把NFA、DFA概念理解,并能够将NFA转换为DFA,能将正则表达式转换为NFA,并可以使用lex生成简单的词法分析器。

第四章 语法分析

到目前为止最难的一章,据说很多自学的人都是读到这一章放弃的。学完这一章应该有了语法分析的概念,并理解语法分析的局限性,比如变量先声明后使用时没法通过语法定义的,但是相对词法分析,语法可以表示的东西已经多了很多。

lex和yacc是学习编译原理很重要的部分,可以自动生成分析代码,但是默认编译对装换表做了优化,用几个一维表代替正常的二维表

实际应用中的编译器通常会选择二义性文法和根据运算符的优先级来生成的文法,因为这样的文法相对比较简单

第五章 语法制导的翻译

这一章在语法分析中加入翻译代码,主要讲了2个概念:
SDD:语法制导定义,由一个上下文无关文法和属性及规则组成
SDT:语法制导翻译,是在其产生式体内嵌入了程序片段的一个上下文无关文法

第六章 中间代码生成

这一章讲了三地址中间代码的表示方法和程序中大部分内容的三地址表示方法

第七章 运行时刻环境

运行时刻环境主要是存储管理,包括栈管理与堆管理,栈是一个局部的模块,堆是一个全局的模块,本章的一个重要内容是垃圾回收

第八章 代码生成

代码生成的任务是把编译器前端生成的中间表示形式与符号表,转换为可执行的应用程序,这个过程包括指令选择(可能还要考虑机器相关指令)、寄存器分配和指派(寄存器数量是有限制的,而某些计算又对寄存器使用有特殊要求,比如*和/)、指令排序




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《程序设计语言编译原理陈火旺PDF》是一本关于程序设计语言编译原理的电子书籍,作者为陈火旺。编译原理是计算机科学中的重要领域,涉及到将高级程序设计语言转化为机器语言的过程。这本书通过详细的介绍,从理论到实践,全面地阐述了程序设计语言的编译原理。 该书的内容涵盖了编译原理的基本概念、词法分析、语法分析、语义分析、中间代码生成、优化以及目标代码生成等各个方面。读者通过学习这些知识,可以深入了解程序设计语言的编译过程,并掌握相关的理论和技术。 陈火旺是该领域的专家,他在书中以简明易懂的方式解释了复杂的概念,为读者提供了一个全面而系统的学习指南。他还通过实例和实践操作,帮助读者理解和应用所学知识。 这本电子书具有很多优点。首先,它的内容涵盖了编译原理的各个方面,适合初学者入门和进阶学习。其次,书中的例子和案例分析,有助于读者更好地理解概念和原理,并应用于实践中。此外,书中还提供了大量的习题和答案,供读者巩固知识和进行自我评估。 总之,《程序设计语言编译原理陈火旺PDF》是一本权威而实用的编译原理教材,适合计算机科学相关专业的学生和从事编程开发的从业人员阅读和参考。通过学习该书,读者可以系统地学习和掌握程序设计语言的编译原理,提高自己在编程领域中的技能水平。 ### 回答2: 《程序设计语言编译原理》是陈火旺教授编写的一本计算机科学与技术方面的教材。这本教材主要介绍了程序设计语言的编译原理编译原理是计算机科学中的一门重要的学科,它研究的是如何将高级程序设计语言转换为可执行的机器语言。为了更好地理解编译原理,我们需要掌握一定的数学基础和计算机底层的知识。 《程序设计语言编译原理》这本教材涵盖了编译原理的基本概念和核心技术,帮助读者理解编译器的工作原理和设计方法。书中从词法分析、语法分析到中间代码生成和优化,详细介绍了编译器的各个阶段和相关算法。 陈火旺教授在编写这本教材时,注重理论与实践的结合。书中既有理论知识的讲解和数学推导,也有实际编程的案例和示例代码。这样的安排使得读者能够更好地理解编译原理的核心概念,同时也能够应用所学知识进行实际的编程工作。 《程序设计语言编译原理》的内容逻辑清晰,层次分明。每个章节都有明确的学习目标和总结,帮助读者检验自己的掌握程度和回顾所学知识。此外,书中还提供了一些习题和参考文献,供读者进一步学习和研究。 总之,陈火旺教授编写的《程序设计语言编译原理》是一本权威、全面、深入浅出的教材。通过学习这本书,读者可以全面了解编译原理的基本概念和技术,并能够应用所学知识进行实际的编程工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值