专栏首页佳爷的后花媛编译器的结构|编译原理

编译器的结构|编译原理

正文之前,附上一点关于昨天编译器和解释器的思考:

  1. 编译器和解释器之间的区别是什么?
  2. 编译器相对于解释器的优点是什么?解释器相对于编译器的优点是什么?
  3. 在一个语言处理系统中,编译器产生汇编语言而不是机器语言的好处是什么?
  4. 把一种高级语言翻译成另一种高级语言的编译器称为源到源(source to source )的翻译器,编译器使用C语言作为目标语言有什么好处?
  5. 描述一下汇编器所要完成的一些任务。

今天的内容是冠以编译器的结构。(翻译内容可能不太准确,谅解,凑合看吧)

编译器相当于一个黑盒子,能够把源程序映射为在语义上等价的目标程序,而这个黑盒子中映射的过程主要由两个部分组成:分析部分和综合部分。

分析部分:

分析部分把源程序分解成为多个组成要素,并在这些要素之上加上语法结构。它还会收集有关源程序的信息,并把信息存放在一个称为符号表的数据结构中,符号表将和中间表示形式一起传送给综合部分。

综合部分:

综合部分根据中间表示和符号表中的信息来构造用户期待的目标程序,分析部分经常被称为编译器的前端,而综合部分称为后端。

一个编译器的各个步骤

一个赋值语句的翻译

人丑就要多读书

本文分享自微信公众号 - 佳爷的后花媛(zoe1368329355),作者:仇诺伊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1.1 编译器和解释器的简介|编译原理

    编译器:在一个程序运行之前,首先需要被翻译成一种能够被计算机执行的形式,完成这项翻译工作的软件系统就是编译器。

    仇诺伊
  • 编译器和解释器的简介|编译原理

    1.1 Introduction to Compilers and interpreters

    仇诺伊
  • 编程语言|编译原理

    今天的是讲一讲编程语言,为什么会有这么多不同的编程语言?为什么还会有新的编程语言?

    仇诺伊
  • 高级编译器设计与实现(Steven.S.Muchnick).(中文版)

    本书是经典的编译器著作,与“龙书”齐名。书中针对现代语言和体系结构全面介绍了编译器设计与实现的高级论题,从编译器的基础领域中的高级问题开始,然后深入讨论了各种重...

    用户3157710
  • 基础知识 | 每日一练(172)

    士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ...

    闫小林
  • 让这三兄弟跟着你的代码

    在做嵌入式开发的时候,有时候我们需要指定变量地址,而不同的编译器使用的关键词和指令不一样,为了使我们的代码通用可以使用在不同的编译器下,那我们应该怎么做呢?

    用户1605515
  • 程序员大神教你学C语言/C加加编程零基础新手入门

    第一章:编译器和程序 很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门...

    企鹅号小编
  • 为什么需要一个聪明且强势的编译器

    我从2005年开始学习编程。到现在为止的这段期间,我已经使用了非常多的语言。包括C, Java, Ruby,JavaScript, Groovy, Scala.

    用户2936994
  • 陈天奇:深度学习编译技术的现状和未来

    深度学习编译器的部署目标传统的深度学习框架也可以做,一个非常自然的问题是为什么不直接沿用传统的框架。这是一个编译器研究者来往往会忽略的问题。深度学习编译器只有在...

    机器之心
  • 2020-3-4-T型图介绍

    比如下图,就是我先使用c语言编写了java编译器一个将java代码转成本地机器码的编译器。

    黄腾霄

扫码关注云+社区

领取腾讯云代金券