一.编译型语言与解释型语言( 三 )


4.可移植性对比编译型语言是运行二进制内容,所以:一旦CPU指令系统改变,之前的二进制文件可能运行不了 。比如:如果到其他硬件平台上运行,就可能出现错误,就需要根据该平台重新编译出新的二进制文件 。所以:可移植性差;而解释型语言则不然 。它并没有实现弄成什么二进制内容,而是在需要的时候才开始编译、运行 。所以:它自然具有可移植性,即:在任何平台都可以马上运行起来 。注意:它的解释工具如:浏览器,本身就是编译型语言解释出来的二进制代码,所以浏览器本身不具有移植性,是需要针对不同的平台弄出对应的浏览器最终二进制文件的 。这里千万不要混淆了 。
5.升级上对比编译型语言弄出来的二进制文件如果要升级,自然要重新下载一个新的二进制文件了 。所以重新下载,安装,覆盖是最大的特点 。比如QQ的升级,就是要重新下载,重新安装,重新覆盖,等个半天,而且很耗费CPU资源,体验性就不大好;而解释型的语言,只要重新写好源代码即可 。用户提要到最新效果,只要刷新一下即可 。所以体验性好 。比如:某网站平台升级了,用户只要重新刷新一下…
6.应用领域编译型语言应用领域通常是那些安装软件,如:桌面上的那种安装软件;解释型的语言的应用领域通常是:互联网,网站等,那种刷新了一下就可以看到最新效果的领域 。
实现原理角度分析
实现原理,简单来说就是:是不是做成了“实时采集”;
编译型语言没有做“实时采集” 。它选择了一次性解决问题,表现为:先弄出完整的二进制代码之后,再让用户去执行该二进制代码,这样省事、省力、省心 。但造成可移植性差、升级麻烦的后果 。
解释型语言,采用了“实时采集”的措施,做成“边解释、边运行” 。但这样带来的直接弊端就是:边走边看,因此速度自然要慢一些 。不过现在的CPU、内存等硬件能力都很强大,这个方面的影响可以忽略 。而它带来的非常便捷的升级,让它更显示出独特的魅力 。所以它在移动互联网的领域,在只要刷新一下就可以看到最新效果的领域,是独一无二的霸主 。
结论
二者都是客观事物,各有优势和劣势,没有绝对的正确和错误之分 。但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的 。
部分内容出自:
二.动态类型语言与静态类型语言 发展历史
在对二者进行说明之前,我们先来了解一下动态语言和静态语言的发展历史 。动态语言是“微机时代”的代表,为编写KB级项目而设计的,从技术上讲非常过时 。出现之后,绝大多数动态语言都“死掉”了 。微机时代计算机并不是独立学科,而是属于电工学的一个分支 。所以严格意义上,当时没有程序员,只有“写代码的电工” 。微机时代的计算机使用软盘储存数据,最大容量才1.4MB,程序都特别简单,一个完整的商业操作系统才几百kb 。当时的三大操作系统(MS-DOS、Amiga、Unix)均在500kb以下 。由于动态语言的语法简洁,可以有效节省磁盘空间,因此在那个储存空间非常紧张,计算机还十分“脑残”的年代,非常有优势,处于统治地位 。但从诞生,计算机进入图形化时代,程序就开始变得越来越庞大 。商业软件从平均几KB,增大到几MB,几十MB,甚至几百MB 。计算机成为独立学科,职业程序员大量出现 。“微机时代”宣告结束,“IT时代”到来 。从此,动态语言越来越难以编写出合格的程序 。硬盘普及,磁盘空间不再紧张 。智能IDE的出现,拉动静态语言全面崛起,终结了动态语言的统治地位 。通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言 。