编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。
一个现代编译器的主要工作流程如下:
源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables])
工作原理
翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言)。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。
典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序。
编译器种类
编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器。例如: 自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令)。
编译器的选择主要受你学习的编程语言来规定的,你学习什么语言就用它对应的编译器。
看你写的是哪种程序代码,如C语言,JAVA,BASIC,C++等等,是哪个就选用哪一种的编译器编译生成exe可执行文件,就是程序了
这不存在哪个好用的问题.
每种语言都有对应的编译器.
所谓编译器,简单来说,就是能理解特定的语言,并能操作计算机的程序或说工具.
每种编程语言都有它们各自的编译工具,就是说,你选择了一种编程语言,就决定了你的程序代码使用哪一种编译器,这个是没有选择的,不过你可以选择合适的编程软件来简化你设计程序代码。
如
basic可以用MS的visual basic 6.0或者visual basic.net
java可以用jbuilder或者jcreator,甚至文本+命令提示符
........
如果是初学,可以找一些介绍编程语言和开发环境的资料看一下。
用编译器啊