zoukankan      html  css  js  c++  java
  • 语言的翻译过程

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

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

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

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

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

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

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

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

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

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

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

        Python也支持  分段编译。

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

    编译过程:

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

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

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

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

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

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

  • 相关阅读:
    treeview 递归
    循环递归遍历XML文档或按某要求遍历XML文档
    SQL Server、IIS和 ASP.NET安全配置
    C# USING 语句块
    C# 基础语法
    不安装oracle 客户端连接oracle DDTeck连接语法
    Java中堆和栈的区别
    C# 采用OLDB方式连接EXCEL
    EXCEL 列宽
    C# 问号用法
  • 原文地址:https://www.cnblogs.com/wust221/p/3025276.html
Copyright © 2011-2022 走看看