美文网首页百科馆
编译基础原理

编译基础原理

作者: 卖梦想的男孩 | 来源:发表于2017-03-02 10:36 被阅读46次

    编程语言有各种各样的,包括指令型的->编译型->解释型等,高级语言一般都是需要编译成低级语言来让计算机执行,解释型的语言其执行环境会处理一系列的过程,不过总体大致是一致的。
    先了解下源代码到程序的执行过程

    • 编译
      这个过程编译系统将我们写的文本字符串编译生成计算机目标代码。
    • 链接
      这个阶段链接器会把生成的每个目标文件协调起来,生成可执行文件
    • 载入
      这个阶段把生成的可执行文件加载内存中生成一系列指令,供计算机识别执行

    编译的一般步骤

    • 扫描程序(scanner)
      主要用来处理注释、宏、预编译指令、关键字,标识符,字面量,特殊符号等。简单来说就是把源代码进行“单词化”

    • 语法分析(parser )
      将扫描出来的“词”生成语法树

    • 语义分析(semantic analyzer )
      遍历整个语法树,把每个节点的表达式都标识类型,并且验证是否合法。

    • 优化程序(source code optimizer)
      通过编译器对代码改进或优化,如不必要的计算、调用、无用代码之类的。

    • 代码生成(code generator)
      由代码生成器得到中间代码,中间代码主要是为了处理平台的差异性,与源代码的种类也无关。

    • 目标代码(target code optimizer )
      编译器尝试着改进由代码生成器生成的目标代码,即加、减、乘、除跳转的优化,生成机器能识别的汇编代码。
      当然计算机最终执行的是01代码,但是机器指令其实是识别的汇编代码的。

    相关文章

      网友评论

        本文标题:编译基础原理

        本文链接:https://www.haomeiwen.com/subject/ocrhgttx.html