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

编译基础原理

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

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

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

编译的一般步骤

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

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

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

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

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

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

相关文章

  • 编译基础原理

    编程语言有各种各样的,包括指令型的->编译型->解释型等,高级语言一般都是需要编译成低级语言来让计算机执行,解释型...

  • 编译原理总结提炼

    一、前言 编译原理是大学一门计算机基础课程,学习了编译原理并不意味着可以写出一个编译器,但学习编译原理可以给我们程...

  • Swift5.1 学习笔记(一)

    基础语法以及汇编原理 oc与swift汇编的区别 编译分为前端编译、后端编译。下面的图就描述了oc和swift编译...

  • 高级面试题

    170+道钉钉前端扫盲知识点 基础知识 基础知识主要包含以下几个方面: 基础:计算机原理、编译原理、数据结构、算法...

  • 编译原理复习笔记-编译基础

    语言之间的翻译 汇编语言->机器语言:汇编(或交叉汇编) 程序语言-汇编语言或机器指令:编译(或解释) 高级语言之...

  • 前端基础知识汇总

    基础知识主要包含以下几个方面: 基础:计算机原理、编译原理、数据结构、算法、设计模式、编程范式等基本知识了解 语法...

  • 5分钟,了解一下-编译原理

    阅读本文只需要5分钟 引用声明:本文内容是在网易云课堂的编译原理课的基础上,进行提炼 编译原理主要是讲了编译器的实...

  • 我的测试工程师笔记01

    首先,需要有宽泛的计算机基础知识,包括:数据结构(√)微机原理(×)数据库(×)操作系统原理(×)编译原理(×)逻...

  • webpack基础

    webpack-基础貌似这些属于编译原理的内容。当时看了一点编译原理,当中的自动机,彻底懵。不过大概了解了一点内容...

  • iOS高级进阶

    基础知识 数据结构 操作系统 编译原理 Python语言 HTTP 工具 Charles (HTTP/HTTPS)...

网友评论

    本文标题:编译基础原理

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