手撕龙书 第一章 认识编译器

编译原理
编译的原理
什么叫编译?
编排和翻译.
编排什么?
编排人理解的语言.
翻译成什么?
翻译成机器能理解的语言.
根据以上,
所以
编译=高级编程语言–>中间代码–>最终的机器语言.
什么是编译器?
能干的了编译这个事的程序,叫做编译器.
编译器现在不仅仅是衡量高级编程语言的一部分,还是操作系统能够实现的命根.
想想操作系统很多代码是C写的了,但是机器无法理解C,如果你的操作系统不带上能把自己翻译成机器语言的编译器,操作系统还跑个什么劲儿?
以上,把编译器当作了一个黑盒子来看待.
下面,我们拆一下这个盒子.
它大致由以下几个组成部分.
首先是编译器的前端(front end),之所以叫前端,因为它面向的是人能懂的语言,也就是高级编程语言,C,C++.
既然有前端,那么就有后端(back end),之所以叫后端,因为它面向的是机器能理解的语言,也就是机器语言.
那么再细分,它们做了什么呢?
前端有语言的词法分析->语法分析->语义分析.
后端有中间代码的生成,以及对中间代码的优化,最后是生成目标平台的机器语言代码.
当然,内部可能还有细分,具体的可以手撕一下龙书的第一章序章来了解.
如果第一次阅读看不懂或不理解没有关系,很多内容,先有树型的认识,可以以后有了更多经验,再丰富枝叶上的细节.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值