什么是编译器

乐多 问答 2022-10-24 22:10:15 阅读(...)

编译器是指从高级语言到低级语言的翻译器,同样的技术可用于不同种类语言之间的翻译,编译器是一种电脑程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。

编译器是指从高级语言到低级语言的翻译器,同样的技术可用于不同种类语言之间的翻译。编译器是一种电脑程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。

编译器 compiler

什么是编译器

编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。

编译器的工作流程

现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

编译器的作用

它主要的目的是将便于人编写,阅读,维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序,也就是可执行文件。编译器将原始程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源代码一般为高阶语言 (High-level language), 如 Pascal、C、C++、C# 、Java 等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。

高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如 Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。

对于 C#、VB 等高级语言而言,编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被 CPU 直接计算的机器码(NativeCode)。

一般编译器可以分为以下两类

  1. “本地”编译器:编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码。
  2. 交叉编译器:编译器也可以生成用来在其他平台上运行的目标代码,交叉编译器在生成新的硬件平台时非常有用。

编译器工作方法

  1. 首先编译器进行语法分析,也就是要把那些字符串分离出来。
  2. 然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。
  3. 最后生成的是目标文件,也称为 obj 文件。
  4. 再经过链接器的链接就可以生成最后的 EXE 文件了。
  5. 有些时候需要把多个文件产生的目标文件进行链接,产生最后的代码。这一过程称为交叉链接。
0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • 磁盘 disk

    电脑E盘有什么作用

    电脑E盘的作用是电脑硬盘的一个储存分区,可以存放一些音乐,图片视频等和下载的文件,可作为计算机分区的标识符号,可以挂载软驱、光驱、硬盘、U 盘、移动硬盘等几乎所有可挂载的,它和D盘的作用区分不是特别大,D盘储存应用处于较多,而磁盘储存其他。
  • 兼容性 compatibility

    向后兼容性是什么

    向后兼容性定义为任何硬件或软件使用旧软件版本的接口或成功与其他硬件系统一起工作的能力。简单来说,向后兼容意味着与同一产品的旧型号兼容。软件和硬件可以轻松共享数据,并使用相同的接口成功通信。
  • net framework

    net framework是什么

    .NET Framework是Windows的托管执行环境,可为其运行的应用提供各种服务,组件有公共语言运行时 (CLR),是处理运行应用的执行引擎;.NET Framework类库,提供开发人员从其自己应用中调用的已测试、可重用代码库。
  • 编程语言 programming language

    编程语言是什么

    编程语言(programming language)是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令,一种能够让程序员准确地定义计算机所需要使用数据的计算机语言,并精确地定义在不同情况下所应当采取的行动。
  • 超级计算机 Supercomputer

    超级计算机是什么

    超级计算机(Supercomputer)指能够执行一般个人电脑无法处理的高速运算的计算机,规格与性能比个人计算机强大许多。现有的超级计算机运算速度大都可以达到每秒一兆(万亿,非百万)次以上。
  • MATLAB

    MATLAB是什么

    MATLAB是一款商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。