什么是编译器(编程软件)?
总的来说,你所谓的编程语言其实就是软件,叫做编译器,它读取文本文件,做了许多处理,并生成二进制文件。大白话的讲,就是负责“翻译”或“解释”代码的一个软件!
编译器可以是任何一个能将一个文本翻译为另一个文本的程序。比如C语言、C++这样的程序,当我们一行一行写下代码后,需要经过编译器的“翻译”才能变成可执行程序才可以执行。才可以实现代码到程序的转变,而这一切都需要编译器帮我们去做。
编译器做了什么?
简单来说,编译器读取源代码生成二进制文件。由于直接将复杂的、人类可读的代码转为一和零是非常复杂的,编译器在程序可运行前有几个步骤要做:
读取你给它的源代码中的独立字符。
将字符分类为字,数字,符号和操作符。
获取已排序完的字符,并通过将它们与模式匹配相匹配和生成操作树来确定它们尝试进行的操作。
迭代上一步中生成操作树中的每一个操作,并生成等效的二进制文件。
当我说编译器立刻从一个操作树转化到二进制文件时,它实际生成了汇编代码,汇编代码随后被汇编/编译成二进制文件。汇编像是更高级的,人类可读的二进制文件。
那么问题来了,我们学编程,比如C语言,又是32个关键字、又是各种函数,还有各种语法,学这些不就为了写代码让电脑执行吗?为什么还要编译器“翻译”呢?
答案很简单,因为:电脑(其实主要就是CPU)只认识0或1这两个数字。所有写的一切代码,都需要编译器帮我们编译也就是翻译成大量的01代码,才是CPU的“母语”,CPU才会熟练的帮我们飞一般的帮速度执行。
那么你可能又会问,既然CPU只认识0和1,反正也要翻译一遍,那我们还学什么编程,学什么语法,直接用汉语写命令写代码不行吗?
答案是:当然可以,比如易语言,或号称一句话就可以完成一个功能的swift语言等等。
无论哪种语言,想要最终成为可执行的程序,都需要编译器帮我们去编译才可以实现! 无非是语言的高级与否,影响编译器翻译量多少而已!源码要运行,必须先转成二进制的机器码。
以C语言为例,常见的编译器有:
Windows系统下VC/VS系列编译器为cl.exe
Linux系统下原生自带的gcc编译器
Max系统下的LLVM/CLANG编译器
这些编译器的使用方式常常在DOS或命令提示符下,通过一步步的命令进行操作,需要经过编译、链接才会生成对应的可执行文件
什么是IDE(集成开发环境)?
简单讲,就是比编译器功能更全面更强大界面更友好的软件
我们实际学习和开发过程中大家听到或见过的基本都是IDE(集成开发环境),比如VC6.0、VS2012、CodeBlocks等等,他们的核心还是前面提到的编译器,只不过为了大家方便,全部免去命令形式的操作,取而代之的友好的界面,一键编译等方便的操作,还额外提供包括代码高亮、代码调试、项目管理等高级功能
常见的编译器有:
TurboC2.0
VC6.0
VS系列(比如VS2012)
CodeBlocks
DevCpp
C-Free
等等
领取专属 10元无门槛券
私享最新 技术干货