编译的基本步骤

在笔者身边(普通二本学校)所接触的搞IT的人士,很少有学习或者了解过编译原理的人。窃以为原因有两点:一是所从事的领域多数为顶层开发,学习算法都头疼的够呛了;二是学习氛围相对较差,没有开设相应的课程。(突然想起了一则笑话,说:一男上非诚勿扰,当女嘉宾们得知他是程序员后,一阵“咚嗡”,就没有然后了。)编译器对于笔者来说一直是一个很神奇的东西,它能帮我们“传达”我们想要告诉计算器的消息,也间接地让程序员的队伍日益壮大!所以不了解了解,真心觉得对不起老一辈程序员们如艺术品般的程序。

在学习中记录思考,总是好的,那么开始第一套“常规体操”训练!

毫无疑问的是编译器的本质是程序指令的集合,它能将人用高级语言(相对于机器语言,对于汇编的编译,就叫汇编)编写的源程序映射为在语义上和功能上等价的目标程序。而整个映射过程分为分析部分综合部分,分析部分常称作编译器的前端(front end),综合部分则叫做编译器的后端(back end)。

前端包含词法分析语法分析语义分析中间代码生成,后端则是代码优化器代码生成器。在分析过程中还会收集源程序的相关信息,并存入一个叫做符号表的数据结构(类似于字典),比如程序中变量的类型、变量名字之类的。符号表将和中间代码一起传送给综合部分。

注:这篇文章只是笔者学习紫龙书第一章节的大概笔记,其中涉及的各方面知识只是如蜻蜓点水一般的提了一下,那么笔者的心思就不言而喻了:想揭开编译器的神秘面纱?想欣赏她的曼妙身姿?想知道你和她又会有怎样的爱恨情仇?又有怎样的剪不断理还乱的牵绊?请翻开紫龙书,开启这一神秘的大门!(可以打脸,^_^)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值