python是什么语言-python是一门什么样的语言?

解释型,从字面上看,编译和解释都有翻译的意思,它们的区别则在于翻译的时机安排不大一样。打个比方:阅读一本不懂的外语书,可以找一个翻译,给他足够时间从头到尾把整本书翻译好,然后把母语版书给你阅读;或者,让翻译一句一句给你翻译,如果想往回看某个章杰,他也得重新给你翻译。

两种方式,前者就相当于编译型:一次把所有 代码转换成机器语言,然后写成可执行文件;而后者就相当于解释型:在程序运行的前一刻,还只有源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总言之,就是不断地解释、执行、解释、执行……所以,解释型程序是离不开解释程序的。像早期的BASIC就是一门经典的解释型语言,要执行BASIC程序,就得进入BASIC环境,然后才能加载程序源文件、运行。

解释型语言注定比编译型语言慢,某些情况下甚至会慢几百倍。

编译型与解释型,两者各有利弊。前者执行速度快,同等条件下对系统要求低,因此像开发操作系统、大型应用程序、数据库系统等时采用。像C/C++、Pascal/Object

Pascal(Delphi)、VB等基本都可视为编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释型语言,如JAVA、JavaScript、VBScript、Perl、Python等。

编译型和解释型各有优缺点又相互对立,所以一批新兴的语言都有把两者折衷起来的趋势,例如JAVA语言虽然比较接近解释型语言的特征,但在执行之前已经预先进行一次预编译,生成的代码是介于机器码和JAVA源代码之间的中介代码,运行的时候则由JVM(Java的虚拟机平台,可视为解释器)解释执行。它既保留了源代码的高抽象、可移植的特点,又已经完成了对源代码的大部分预编译工作,所以执行起来比"纯解释型”程序要快许多。而像VB6(或以前版本)、C#这样的语言,虽然表面上看生成的是.exe可执行程序文件,但VB6编译之后实际生成的也是一种中介码,只不过编译器在前面安插了一段自动调用某个外部解释器的代码(该解释程序独立于用户编写的程序,存放于系统的某个DLL文件中,所有以VB6编译生成的可执行程序都要用到它),以解释执行实际的程序体。

C#(以及其他.net的语言编译器)则是生成.net目标代码,实际执行时则由.net解释系统(就像JVM一样,也是一个虚拟机平台)进行执行。当然.net目标代码已经相当"低级”,比较接近机器语言了,所以仍将其视为编译语言,而且其可移植程度也没有JAVA号称的这么强大,JAVA号称"一次编译,到处执行”,而.net则是"一次编码,到处编译”。总之随着设计技术与硬件的不断发展,编译型与解释型两种方式的界限正在不断变得模糊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值