【扩展3】解释型语言和编译型语言

  主要参考文章:【解释型语言和编译型语言的区别】(CSDN)
  原文链接:https://blog.csdn.net/zhu_xun/article/details/16921413


解释型语言和编译型语言

  如java ,C ,C++之类的语言都属于高级语言,计算机不能直接理解,所以在运行程序时需要首先将高级语言编译成计算机能理解的机器语言。解释型语言和编译型语言的不同就体现在对这个过程的处理上。

解释型语言

  • 概述

    解释性语言是在程序运行时才进行翻译,在程序执行时,专门会有一个编译器将程序语句翻译成机器语言,所以解释性语言每执行一次就要编译一次。

  • 优点

    • 部分解释器能在程序运行时动态优化代码,使性能甚至超过编译型语言
    • 程序首次启动和运行的速度比编译型语言快
    • 无中间文件的生成,相对于编译型语言占用存储空间比较少
  • 缺点

    • 相对与编译型语言,执行效率比较低
  • 适用场景

    • 一些网页脚本文件,服务器脚本及辅助开发接口等一些对速度要求不高对不同平台兼容性有要求的平台
    • 对系统首次启动运行的时间有要求的系统

编译型语言

  • 概述

    编译型语言执行之前,需要一个专门的编译过程,通过编译系统,将高级语言翻译成机器语言,同时生成可执行的二进制文件,比如windows下的exe文件。以后就可以直接运行可执行的二进制文件而不需要重新生成。

  • 优点

    • 因为在第一次运行的时候生成了二进制文件,所以在以后运行的时候不需要再去重新编译,所以编译型语言程序的执行效率比较高。
  • 缺点

    • 不适合对程序占用空间有严格要求的系统,比如嵌入式系统。
    • 首次运行相对于编译型语言时间太长。
  • 使用场景

    • 因为运行时间短,同等条件下对系统运行效率要求不高,因此可适用于一些操作系统,大型应用程序,数据库系统都使用编译型语言。

总结:

  解释器与编译器两者各有优势:当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即执行。在程序运行后,随着时间的推移,编译器逐渐发挥作用,把越来越多的代码编译成本地代码之后,可以获取更高的执行效率。 当程序运行环境中内存资源限制较大(如部分嵌入式系统中),可以使用解释执行节约内存,反之可以使用编译执行来提升效率。------《深入理解Java虚拟机》 

  随着硬件的升级和设计思想的变革,编译型和解释性语言的区别也越来越笼统,主要体现在一些新型的语言上,加之解释型的特性使得主要的编译器厂商都会注重其性能进行优化,所以解释型语言超过编译型语言也是必然的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文转自:http://blog.csdn.net/zhu_xun/article/details/1692141...
    王晨阳nju阅读 644评论 0 2
  • 编译型语言 在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻...
    MkTom阅读 512评论 0 0
  • 编译型语言由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,...
    shawnxxx阅读 263评论 0 0
  • 计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编...
    舒小贱阅读 488评论 0 1
  • 腐竹烩木耳 腐竹含有多种矿物,补充钙质,防止因缺钙导致的骨质疏松,增进骨骼发育浓缩了黄豆中的精华,是豆制品中的营养...
    4b930517abd6阅读 116评论 0 0