重读《现代编译原理》几句小感



最近重温了一下《现代编译原理》这本书,感觉与大学学习的时候,完全不是一个味道;深刻的懂得理论联系实际的感受,瞬间有一种“初极狭,才通人。复行数十步,豁然开朗”的惬意感!

编译器将汇编或高级计算机语言源程序(Source
program)作为输入(注:目前本人接触到的大多是C/C++编译器/汇编语言编译器),翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言
(High-level language), 如PascalCC++等或汇编语言,而目标则是机器语言的目标代码(Object
code),有时也称作机器代码(Machine code)。

一个现代编译器的主要工作流程:源代码 (source
code) →预处理器 (preprocessor) →编译器
(compiler) →目标代码 (object code) →链接器
(Linker) → 可执行程序 (executables)。

具体感受就不多说,但突然明白了以前想不通的Question,真的是一种莫名的享受!还有《深度探索c++对象模型》这本书也挺带劲的,虽然有些地方还不太Understand,但我会一如既往的“攻城”!



时间: 2024-10-31 12:07:45

重读《现代编译原理》几句小感的相关文章

关于编译原理的一下小见解

编译原理(compiler construction),旨在介绍编译程序构造的一般原理和基本方法,内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 它大致包括两个方面,俗称前端和后端.前端的正式名称其实是 language recognition,工程上也称为 parsing.这实际上是整个计算机理论的一个楔入点.比如说,比较基础的 computation theory,也就是研究四种基本计算模型的理论,就是以 language recogn

0909我的编译原理感

1.编译原理学什么: 编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法.学习内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 2.为什么学编译原理: 编译原理是计算机专业设置的一门重要的专业课程.这门课在理论.技术.方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力.有以下几点好处: 1.你学到了一种解决问题的方法,而且是强有力的方法.也许你一辈子都无缘写一个C语言的编译器,但如果你一直做程序,

大前端开发者需要了解的基础编译原理和语言知识

转自:https://yq.aliyun.com/articles/180879 在我刚刚进入大学,从零开始学习 C 语言的时候,我就不断的从学长的口中听到一个又一个语言,比如 C++.Java.Python.JavaScript 这些大众的,也有 Lisp.Perl.Ruby 这些相对小众的.一般来说,当程序员讨论一门语言的时候,默认的上下文经常是:“用 xxx 语言来完成 xxx 任务”.所以一直困扰着的我的一个问题就是,为什么完成某个任务,一定要选择特定的语言,比如安卓开发是 Java,前

前端要以正确的姿势学习编译原理(上篇)

转自:https://zhuanlan.zhihu.com/p/36301857 前言 最近在我的 timline 上面出现了很多类似<前端为什么要学编译原理>这类文章以及<前端怎么学AST>这类的问题,但是却发现并没有人给大家介绍前端要如何以系统并且正确地学习编译原理,所以我就结合自己的经验以及走过的弯路来给大家分享点心得和经验,希望能让大家少走点弯路. 最后我并不是前端,只是恰好会写点 JavaScript 而已. 目录 上篇: 编译原理为什么难 怎么学好编程语言 代码到底是什

编译原理简单介绍

编译原理学习导论 大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程,同时也成为了研究生入学考试的必考内容.编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂.我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了.在20世纪50年代,编译器的编写一直被认为是十分困难的事情,第

程序员的三大浪漫之一——编译原理

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法.内容包括语言和文法.词法分析.语法分析.语法制导翻译.中间代码生成.存储管理.代码优化和目标代码生成. 编译原理是计算机专业设置的一门重要的专业课程.虽然只有少数人从事编译方面的工作,但是这门课在理论.技术.方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力. 我认为,既然编译过程是将一种语言翻译为另一种语言的计算机程序的过程,顾名思义,编译原理就是为我们解释计算机是如何将一种语言翻译成另一种语言这

0909走进编译原理

1.编译原理学什么? 编译原理这一学科,主要学习的是编译器方面的原理与技术,我们能从中学会各种算法与代码的原理,明白计算机是如何“听懂人话”,我们的代码是如何经过编译器转换成机器语言,这样不仅能实现自己去编写简单的小编译器,也能通过此学科去接触已有各编译器的思想,认识到编程方面更多要注意的问题以及解决的方向,站在本质的角度看代码,从而更能成就计算机专业人员的计算机逻辑思维. 2.为什么要学编译原理? 说到编译原理,人们喜欢把这门学科比作人体解剖和造轮子,是计算机中和代码作斗争的一门学科.据本人理

现代编译原理--第零章(含代码)

<现代编译原理>,俗称,虎书.因为这本书对实践的要求比较高,所以选择了这本书来作为编译原理的学习书籍,想一步一步的记录下来,最终完成一个完整的编译器.但是,一个人看书总是感觉很孤独.今天看第一章的题目,看完了都不知道要干什么.无奈找了一本中文版的,翻译的也不如人意,还不如看英文的.最后去晚上找了半天才找到别人写的第一章作业运行后,才知道要实现什么功能.然后自己徒手开始写,居然没有逻辑bug的就完了.呵呵.突然感觉网上的资料太少,所以写这一个系列的文章也想把志同道合的聚集起来,大家一起来讨论虎书

编译原理学习导论

编译原理学习导论 大学课程为什么要开设编译原理呢?这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,但是编译原理却一直作为大学本科的必修课程,同一时候也成为了研究生入学考试的必考内容.编译原理及技术从本质上来讲就是一个算法问题而已,当然因为这个问题十分复杂,其解决算法也相对复杂.我们学的数据结构与算法分析也是讲算法的,只是讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比較专注解决一种的算法了.在20世纪50年代,编译器的编写一直被觉得是十分困难的事情