编译器是将“一种语言(高级语言)”翻译为“另一种语言(低级语言)”的程序。
编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译。
一个编译器的主要工作流程:
- 源代码 (Source Code)
- 预处理器 (Pre-Processor)
- 编译器 (Compiler)
- 目标代码 (Object Code)
- 链接器 (Linker)
- 可执行程序 (Executables)
源代码通常是高级语言编写的,如C、C++、Java等,高级语言便于程序员编写、阅读、交流、维护,相对而言,机器语言则是计算机能直接解读、运行的。可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,CPU 可以直接识别,但是对于程序员,它们非常晦涩,难以记忆和使用。
以C语言为例,在不同的平台下有不同的编译器:
- Windows 常见的微软编译器cl.exe,被集成在 Visual Studio 中,一般不单独使用;
- Linux 下常用的是 GUN 组织开发的 GCC;
- Mac 下常用的是 LLVM/Clang,被集成在 Xcode 中。
一个C程序编译的过程:GCC编译C语言程序的全过程
在计算机发展的初期,程序员就是使用二进制指令来编写程序的。但直接使用二进制指令编程对程序员来说简直是噩梦,尤其是当程序比较大的时候,不但编写麻烦,需要频繁查询指令手册,还非常容易出错。另外,用二进制指令编程步骤繁琐,要考虑各种边界情况和底层问题,开发效率十分低下。
本文暂时没有评论,来添加一个吧(●'◡'●)