语言的翻译过程

从 源代码 转化成 机器指令 (计算机能执行的形式)需要翻译器

翻译器:解释器 interpreter 和 编译器 compiler

解释器:将源代码转化成一些动作,并立即执行这些动作。

    BASIC就是一个流行的解释性的语言。

    Python语言解释器,先把整个程序转化成某种中间语言,然后由执行速度更快的解释器来执行

    优点:速度快,源代码现存,错误很好找。

    缺点:解释器必须驻留内存以执行程序,速度就很慢。大型项目。内存空间受限制,需要一次性导入源代码。

编译器:直接把源代码转化成汇编语言,或者机器指令。

    结果就是一个或者多个机器代码文件。

    优点:编译生成的程序只需要很少的运行空间,执行速度更快。

    C语言是  分段编译  separate compilation:先分段,再把各段程序连接成一个完整的可执行的程序。

    Python也支持  分段编译。

    为了提高编译速度,一些编译器采用   内存中编译  in_memory compilation   对于小程序而言,内存中编译跟解释器一样响应。

编译过程:

    C/C++:1.首先对源代码进行预编译  preprocessor  预处理器是一个简单的程序。

          对预处理过的代码进行语法分析。编译器把代码分解成小的单元并把他们按树形结构组织起来。

          由代码生成器 code generator遍历语法分析树,把每个节点转化成汇编语言或机器代码。最后得到是一个以.o或者.obj文件

          object:目标  goal   面向对象里面:object是一个有边界的事物。

         2.linker 连接器:把一组目标模块连接成一个可执行程序。操作系统可以装载和运行它。

          连接器 处理函数之间的引用 ( 搜索 库 文件)

原文地址:https://www.cnblogs.com/wust221/p/3025276.html