网友提问:
编译型语言与解释型语言有何区别?
优质回答:
众所周知,计算只能识别二进制,任何程序或软件,最终都要经过编译或解释转换成二进制才能被计算机识别。源代码,源代码就是由程序员使用各种编程语言编写的还未经编译或者解释的程序文本,编译或解释能把源代码翻译成等效的二进制代码,也就是CPU能够识别的机器语言。
编译和解释
编译和解释都是对源代码的解释处理方式,而由于他们的操作方法不同,所以会有不同的运行的效果:
编译是把源代码的每一条语句都编译成机器语言,并最终生成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,在运行时会有很好的性能;
解释器是只有在执行到对应的语句时才会将源代码一行一行的解释成机器语言,给计算机来执行,所以使用解释器来执行的语言也被称为动态语言;
举个现实中的例子,比如你现在想读一本英文书,但你自己又不懂英文,然后你去找了个英文翻译小姐姐来帮忙,翻译小姐姐给你提供了两种选择:
全本翻译:由翻译小姐姐帮你把整本书翻译完,完成校稿后给你一本翻译完成的中文书,在这个过程中翻译就会花费较长的时间,你阅读时就会很快、很轻松;
随身翻译:就是翻译小姐姐随时守在你身边,你想阅读那一句,他就给你翻译那一句,这这种方式翻译时很快,但对你来说,阅读就会花费较长的时间;
编译型语言与解释型语言
编译型语言:使用编译器来编译执行的编程语言,这类语言往往会花费较长的编译时间,但编译完成后,会有很好的运行性能;因此,这类语言编写的程序每次修改都要再次经历一遍完整编译过程后,修改效果才能生效,迭代时间会比解释型语言要长。
由于要经历完整编译过程,因此在程序由任何语法错误都能在编译期被发现,大大降低程序的运行错误。
代表语言:C、C++
解释型语言:使用解释器来解释执行的编程语言,这类语言不需要编译,程序执行到了,解释器才会去解释对应的语句,这类语言更多的时间花费在了运行期间;但是这类语言编写的程序的修改迭代不要经历漫长的编译过程,效果能够很快生效;
这类语言由于没有经历编译过程,所以即便是语法错误,也得等到运行期间才会被发现。
代表语言:PHP、Python、Ruby
其他网友回答
如果不入此题只能说是在头条闲狂草,题主与楼上让我沉思如果把传统思维/易经思维系统看成一台巨型机,那未此题进入哲学方法论或者方法论哲学。觉得心如一楼的定义, 编码那些事 · 高校教师 优质科技领域创作者 1、编译型语言 编译型语言字面意思就是,编译的时候直接编译成机器可以执行或调用的程序(如exe、dll或ocx等类型)。典型常见的编译型语言包括C、C++、Pascal等语言。如将C语言可直接编译成exe程序,运行时直接运行exe程序就可以了,无需重新编译,所以程序执行效率较高。编译型语言程序执行过程如下所示: 2、解释型语言 解释型语言是相对于编译型语言来说的,其特点是不需要编译,运行时使用一个专门的解释器去翻译,每一条语句都是执行的时候才翻译,所以这类程序每执行一次就要翻译一次,运行效率较称低。典型的如Java、Python、Matlab等语言,都属于解释型语言。解释型语言程序其执行过程如下所示: 3、两者比较 从运行效率上来说,编译型语言运行速度快;而解释型语言代码需要有专门的解释器,在程序运行时,除要给用户程序本身分配内存空间外,解释器也占用系统资源,所以其运行速度较慢。 从可移植性上来说,编译型语言需要经过编译方可运行,只能在兼容的操作系统上运行,故可移植性差;解释型语言可移植性好,只要有解释器环境,程序就可以在不同的操作系统上运行。 从代码保护性上来说,编译型语言编译后程序不可以修改,且看不到源码,保密性较好;而解释型语言较容易看到原代码。 从应用场合来说,编译型语言由于其执行速度较快,同等条件下对系统的要求较低,因此常用于开发操作系统、大型应用程序、图像处理、数据库开发等场合;解释型语言常用于,一是对运行速度要求不高(如一些网页脚本、服务器脚本、接口辅助开发等)的场合,二是对跨平台(操作系统的兼容性)有要求的场合。
二楼的还未消化。故干脆搬进来天天细读,那末把易经传统看成巨型二进制转换器处理万事万物万变万,直切入阴阳量子计算机系统,很赞同二楼主的比喻。计算机是基于二进制运行的。就像道家哲学的阴阳一样,计算机只有两个状态,开或关、真或假、1或0…因为,组成计算机的基本元件——半导体只能以二进制进行计算。我们编程所用的C/C++、Python、大数据、AI等层出不穷的技术,以及我们存储在电子设备的文本、音频、图像、视频等媒介,最终都是以二进制的形式,被计算和处理的。计算机体系最底层的工程师要使用二进制代码控制芯片来做计算和处理。