美文网首页编译原理
编译原理-一个语言的编译流程

编译原理-一个语言的编译流程

作者: xinhy | 来源:发表于2018-02-09 10:36 被阅读4次

相关概念

编译器:可以阅读以某种语言(源语言)编写的程序,并把该程序翻译成一个等价的,用另一种语言编(目标语言)写的程序.编译器的重要任务之一是报告它在翻译过程中发现的源程序的错误.

解释器:它并不通过翻译的方式生成目标程序.从用户的角度看,解释器直接利用用户提供的输入执行源程序指定的输入.

一个语言的编译流程

一个源程序可以分为多个模块,并存放于独立的文件中.把源程序聚合一起的任务有时会被预处理器的程序多里完成.预处理器还会将宏的缩写形式转换为源语言的语句.

然后,将预处理的源程序作为输入传递给一个编译器.编译器可能产生一个汇编语言成为它的输出,因为汇编语言比较容易输出和调试.接着这个汇编语言由汇编器进行处理,并生成可重定位的机器代码.

大型程序通常被分成多个部分进行编译,因此可重定位的机器代码有必要和其他重定位的目标文件以及库文件连接到一起,形成真正在机器上运行的代码.一个文件中的代码可以指向另外一个文件中的位置,而链接器能够解决外部内存地址的问题.最后,加载器把所有的执行目标文件加载到内存中执行.

整个过程如下图.

相关文章

  • 编译原理-一个语言的编译流程

    相关概念 编译器:可以阅读以某种语言(源语言)编写的程序,并把该程序翻译成一个等价的,用另一种语言编(目标语言)写...

  • JavaScript编译原理与内存管理

    编译原理 编译还是解释? 编程语言分为编译型语言和解释型语言两种,编译型语言的源代码在执行之前要进行完全编译,例如...

  • 读书笔记--你所不知道的js(上卷)

    第一章 编译原理 js是一门编译语言 传统编译语言流程: 分词/词法分析:把字符串分解成有意义的代码块 解析/语法...

  • 你不知道的javascript(1)

    1、作用域 1.1 编译原理 在传统编译语言的流程中,程序的一段源码在执行之前会经历三个步骤,统称为“编译”。 分...

  • V8 工作原理

    编译器和解释器 按语言的执行流程,可以把语言划分为编译型语言和解释型语言。 编译型语言在程序执行之前,需要经过编译...

  • iOS-底层原理 31:LLVM编译流程 & Clang插件开发

    iOS-底层原理 31:LLVM编译流程 & Clang插件开发 本文主要是理解LLVM的编译流程以及clang插...

  • iOS编译与加载流程

    一、编译原理: 一般编程语言可分为编译型语言和直译型语言,我们常用的Objective-C就属于编译行语言(这边就...

  • iOS的编译原理和应用

    iOS的编译原理和应用 什么是编译和编译器 在一般的编程过程中,都要先编译再执行。所谓编译就是把C语言等编程语言编...

  • Android NDK开发之旅8--C语言基础--预编译

    预编译(预处理include、define) C语音的执行流程 C语言执行的流程: 编译:形成目标代码(.obj)...

  • C语言跨平台移植

    C语言编译流程: C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、...

网友评论

    本文标题:编译原理-一个语言的编译流程

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