编译器是指从高级语言到低级语言的翻译器,同样的技术可用于不同种类语言之间的翻译,编译器是一种电脑程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
编译器是指从高级语言到低级语言的翻译器,同样的技术可用于不同种类语言之间的翻译。编译器是一种电脑程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
什么是编译器
编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。
编译器的工作流程
现代编译器的主要工作流程:源代码 (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)。
一般编译器可以分为以下两类
- “本地”编译器:编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码。
- 交叉编译器:编译器也可以生成用来在其他平台上运行的目标代码,交叉编译器在生成新的硬件平台时非常有用。
编译器工作方法
- 首先编译器进行语法分析,也就是要把那些字符串分离出来。
- 然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。
- 最后生成的是目标文件,也称为 obj 文件。
- 再经过链接器的链接就可以生成最后的 EXE 文件了。
- 有些时候需要把多个文件产生的目标文件进行链接,产生最后的代码。这一过程称为交叉链接。
文章来自互联网,只做分享使用。发布者:小俊技术分享,转载请注明出处:https://www.baoxiaoke.com/article/189498.html