㈠ 为什么要编译
在汇编语言之后,上世纪50年代,科学家有发明了好几种用人类语言书写程序的方法,被称为计算机高级语言。如PASCAL语言、BASIC语言、C语言等。高级语言源程序都可以用记事本(Notepad)打开和编辑。高级语言源程序也要经过翻译才能被计算机接受。把高级语言翻译成机器语言的方法大体有两种,一种被称作“解释”,如GWBASIC、BASIC、QBASIC等语言,这种方式下,源程序被翻译出一个完整的操作步骤,计算机就作出相应反应,执行一步,再翻译再执行,逐步达到源程序制定目标。另一种方式被称作“编译”,如PASCAL语言和C语言等,这种方式下,计算机把源程序全部翻译成它自身能读懂的、被称作目标程序的机器语言程序,然后再一次执行。二者的区别在于编译程序能产生目标程序而解释程序则不能产生目标程序。用高级程序设计语言编写的程序,要转换成等价的可执行程序,必须经过编译和连接。同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序。计算机不能直接执行符号化的程序,而是通过汇编程序、解释程序和编译程序而将符号程序转换为可执行程序。高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行。
㈡ 为什么要对源程序进行编译处理
要不计算机不知道你写的是什么,计算机只认识二进制,而源程序是给编程人员看的。所以你要想让计算机认识你写的是什么,就必须进行编译处理。
㈢ 为什么高级程序语言需要编译程序
计算机语言是人与计算机之间交流的媒介,其种类非常多,但大体上分为机器语言、汇编语言、高级语言三大类。
计算机不能直接理解高级语言,只能直接理解机器语言,因此必须将高级语言翻译成机器语言,翻译的过程分为两种,一种是解释,一种是编译。两种方式的区别在于翻译的时间,编译是在程序运行之前,需要一个专门的过程,将程序编译成为机器语言的文件,比如EXE文件,以后要运行的话就不用再重新编译了,直接使用之前的编译结果就行了,因为只翻译一次,运行时不需要再翻译,所以编译型语言的程序执行效率高。
解释性语言则不同,解释性语言不需要编译,其程序在运行时才翻译,每个语句都是执行时才翻译。这样解释性语言每执行一次就要翻译一次,其执行效率则相对较低。
另外,编译型语言以二进制形式保存,源代码不可见;解释性语言以代码形式保存。
㈣ 为什么需要汇编程序,编译程序或解释程序
编译程序是必须的,用户用高级语言或汇编语言编写的程序,计算机是不能执行的,必须要由编译程序翻译成机器码程序,计算机才能识别和执行。否则,人们写的各种程序都是无用的。
汇编程序并不是必须的,只是有些场合要用汇编语言写程序,或部分人还用汇编语言写程序,再由汇编程序(其实也是编译程序)来翻译。但现在,可以不用汇编语言写程序了。
至于解释程序,现在几乎不用了。这是在早期的计算机上,用高级语言写的程序,并不用编译成机器码,而是可以直接运行高级语言程序,然后由解释程序逐条进行翻译,一边翻译一边执行。这样的执行程度是很慢的。
㈤ 小白求助,编译是什么,为什么需要编译
人与机器交流(即人让计算机按照人的意愿做事)依赖于语言
语言的层次是:自然语言->高级编程语言->汇编语言->机器码
人最熟悉的肯定是自然语言(就是你平时说的话)。
而计算机的cpu只认识二进制的机器码,机器码指导计算机做什么操作(如逻辑运算)。
高级编程语言跟自然语言的关系更近些,对人来说相当于自然语言的白痴版,如java中的对象与类的概念可能对应于现实世界的某种事物,如C语言中的函数可能对应了一个功能,比如打印文件,经过简单的训练,人也能大概的读懂。
汇编语言和机器码更接近些,每个汇编指令一般都会对应一条机器码,而高级编程语言中的一个语句(如if else什么的)可能会对应多条汇编指令,汇编指令一般就是算术运算(如add)、逻辑运算(如and)、数据传送(如mov)、条件判断、跳转等,只能用这些简单功能的汇编指令组合来完成一个复杂的功能。人看懂汇编就很吃力了,更别提用汇编来完成想要的功能,太吃力,这个过程还是交个编译器比较好。
而机器码对于一般的程序员来说,就是天书,也基本没人愿意去看。
自然语言最容易表述人们的要求,当用户用自然语言表述了需要的功能后,从自然语言到高级语言的转换过程由程序员来完成,而由高级编程语言到汇编、由汇编到机器码的过程都由编译器来完成,由编译器完成的这个过程也就是编译了。
高级编程语言的代码经过编译阶段成为汇编代码,汇编代码经过汇编阶段变成机器码,机器码文件经过链接阶段变成可执行文件(.exe)。一般编译是指的编译阶段和汇编阶段的组合,编译器的工作一般是编译和链接。
这就是我的理解,希望你帮到你。
㈥ java为什么要编译
因为java的跨平台特性,java所谓的一次编译,到处运行,关键就是在于java的虚拟机,也就是jvm,jvm只认识字节码,所以你写好的java代码就需要编译成字节码才能在jvm上运行。其实不只是java需要编译,C也需要编译,机器本身并不能认识你写的代码,它们只认识0、1这样的字节码,所以无论是你用什么样的语言编写的代码,要想最终在物理机器上运行,都要进行编译。
㈦ 为什么要对C源程序进行编译、链接
首先要说的是C语言属于高级语言,不能直接被计算机识别而执行,所以需要一些操作来转化。。一开始是编译预处理,对宏,包含指令,编译指令等进行处理,然后是词法语法分析,将源代码翻译成中间代码(一般是汇编),接着优化代码,,然后将中间代码翻译成机器语言(目标文件),机器语言是计算机的基层语言,能被计算机直接识别。。接着链接目标文件,生成可以执行文件。。。大概就是这样。。详细的LZ可看这个总结。。http://bbs.zdnet.com.cn/thread-1614727-1-1.html