编译器与命令行有什么区别
A. 编译器是什么
简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。
典型的编译器输出是由包含入口点的名字和地址, 以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的EXE,
所以我们电脑上的文件都是经过编译后的文件。
B. 编译器和解释器的主要区别是什么他们相对于对方各自的优点
解释器是解释执行的源代码,编译器是将源代码编译成目标代码
他们最大的区别是程序运行时需要解释器边解释边执行,而编译器则在运行时是完全不需要的
解释器的优点是比较容易让用户实现自己跨平台的代码,比如java,php等,同一套代码可以在几乎所有的操作系统上执行,而无需根据操作系统做修改;
编译器的目的就是生成目标代码再由连接器生成可执行的机器码,这样的话需要根据不同的操作系统编制代码,虽然有像Qt这样的源代码级跨平台的编程工具库,但在不同的平台上仍然需要重新编译连接成可执行文件,但其执行效率要远远高于解释运行的程序。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
C. 命令和代码有什么区别都需要编译器和运行环境吗如果没有运行环境命令代码能100%发挥作用吗
指令,其实是对CPU而言的。CPU每次从内存取出一个指令,内容是0和1组成的二进制数据。非常不易于辨认。人要想直接用01这样的机器代码(请注意,指令是代码)来编程,那么几乎是不可能的事。
于是人们发明了汇编语言。用一些符号来表示特定的指令机器码。这些符号写好之后,最后由编译器翻译成机器代码。因汇编语言的指令符号几乎和指令机器码一一对应,所以,汇编代码可以看做是指令(一组指令)。
然而,更高级的语言,c++等,显然就不是指令了。它已经很接近人类自然语言。
所以,指令是代码,而且分为机器码 或者是 助记符代码 ,然而,代码却不是指令(因为高级语言代码不是指令)。“代码”是一个通用词语。
D. 编译器和解释器的主要区别是什么他们相对于对方各自的优点
解释器
是
解释执行
的源代码,
编译器
是将源代码编译成
目标代码
他们最大的区别是程序运行时需要解释器边解释边执行,而编译器则在运行时是完全不需要的
解释器的优点是比较容易让用户实现自己跨平台的代码,比如java,php等,同一套代码可以在
几乎所有的
操作系统上执行,而无需根据操作系统做修改;
编译器的目的就是生成目标代码再由连接器生成可执行的
机器码
,这样的话需要根据不同的操作系统编制代码,虽然有像Qt这样的源代码级跨平台的编程工具库,但在不同的平台上仍然需要重新编译连接成可执行文件,但其执行效率要远远高于解释运行的程序。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
E. C语言IDE的Debug和Release版本在命令行的编译选项上有什么区别
编译调试大型程序时使用DEBUG,这种情形下不做任何的代码优化,且会包含所有的调试信息。
RELEASE发布版本,经过DEBUG版本确定没有问题就可以用这个生成带有代码优化和无调试信息的版本,用来给用户使用
编译选项的区别么,依赖具体的编译器,可以参考网页链接
F. c++编程的文本编辑器和编译器有什么区别
编译器是把你的代码(高级语言)解释为CPU指令的一种程序。
你说的这个文本编辑器应该是开发环境,编辑器就是帮助你写出正确语法的代码、设置工程属性的一个环境。
G. 开发环境,开发工具,编辑器,编译器的区别
开发环境=
编辑器
=
开发工具.
例如:
vs2005
vs2008
都是开发环境,也叫开发工具.
非要强调的话,编辑器就是你写代码的地方.
编译器
区别就比较大了,
编译器是用来编译你写好的代码的.
例如:
java的编译器是
java虚拟机
,它负责处理和编译你写的源代码.
vs的编译器就是另外的东西了.
打字很辛苦,记得给分哦
H. 开发环境,开发工具,编辑器,编译器的区别
开发环境= 编辑器 = 开发工具. 例如:vs2005 vs2008 都是开发环境,也叫开发工具. 非要强调的话,编辑器就是你写代码的地方.
编译器区别就比较大了, 编译器是用来编译你写好的代码的. 例如: java的编译器是java虚拟机,它负责处理和编译你写的源代码. vs的编译器就是另外的东西了.
打字很辛苦,记得给分哦
I. 汇编器和编译器有什么区别
汇编器(Assembler)是将汇编语言翻译为机器语言的程序。一般而言,汇编生成的是目标代码,需要经链接器(Linker)生成可执行代码才可以执行。
汇编语言是一种以处理器指令系统为基础的低级语言,采用助记符表达指令操作码,采用标识符表示指令操作数。作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。常用的高级语言编译器有Microsoft公司的MASM系列和Borland公司的TASM系列编译器,还有一些小公司推出的或者免费的汇编软件包等。
编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)