《编译与反编译技术》—第1章1.6节编译的前端和后端

本节书摘来自华章出版社《编译与反编译技术》一书中的第1章,第1.6节编译的前端和后端,作者庞建民,陶红伟,刘晓楠,岳峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看。


1.6 编译的前端和后端

通常,编译的阶段被分成前端和后端两部分。前端是由只依赖于源语言的那些阶段或阶段的一部分组成,往往包含词法分析、语法分析、语义分析和中间代码生成等阶段,当然还包括与这些阶段同时完成的错误处理和独立于目标机器的优化。后端是指编译器中依赖于目标机器的部分,往往只与中间语言有关而独立于源语言。后端包括与目标机器相关的代码优化、代码生成和与这些阶段相伴的错误处理和符号表操作。

基于同一个前端,重写其后端就可以产生同一种源语言在另一种机器上的编译器,这已经是为不同类型机器编写编译器的常用做法。反过来,把几种不同的语言编译成同一种中间语言,使得不同的前端都使用同一个后端,进而得到一类机器上的几个编译器,却只取得了有限的成功,其原因在于不同源语言的区别较大,使得包容它们的中间语言庞大臃肿,难以实现高效率。

编译的几个阶段往往通过一遍(pass)扫描来实现,这里的“一遍扫描”通常是指读一个输入文件和写一个输出文件的过程。把几个阶段组成“一遍”,并且这些阶段的活动在该遍中交错进行是经常发生的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值