首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >解释型语言的优缺点是什么?

解释型语言的优缺点是什么?
EN

Stack Overflow用户
提问于 2009-10-22 23:12:43
回答 9查看 30.4K关注 0票数 6

我现在正在学习Perl。解释型语言的优缺点是什么?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-10-22 23:20:53

所以我将创建这个社区维基( Blatant copy from wikipedia )。

解释语言的优势

解释语言为程序提供了比编译语言更多的灵活性。在解释器中比在编译器中更容易实现的特性包括(但不限于):

内存管理平台独立性(Java的字节码,用于example)

  • reflection和计算器的反射用法)(例如,一阶评估function)

  • dynamic键入和调试的简易性(以解释的languages)

  • small程序大小获得源代码信息更容易(因为解释的语言可以灵活地选择指令code)

  • dynamic scoping

  • automatic

解释语言缺点

解释器的执行通常比常规程序的执行效率低得多。这是因为要么每条指令都应该在运行时传递一个解释,要么就像在较新的实现中一样,在每次执行之前必须将代码编译为中间表示。虚拟机是性能问题的部分解决方案,因为定义的中间语言更接近于机器语言,因此更容易在运行时进行翻译。另一个缺点是需要在本地机器上使用解释器才能执行。

票数 16
EN

Stack Overflow用户

发布于 2009-10-22 23:17:57

优点:

  • 快速原型化(不需要编写、编译、执行cycle)
  • Cross-platform (假设每个平台都有解释器)

缺点:

  • 性能(不会像编译语言那样快)
票数 6
EN

Stack Overflow用户

发布于 2009-10-22 23:20:48

最大的缺点?大多数人会说执行速度,但并不总是正确的。如今,大多数现代解释语言在构建时将要解释的文件转换为中间状态,当执行时,该状态会像任何其他语言一样转换为机器码。如今,智能缓存在这些语言虚拟机中非常普遍,这应该不是太大的问题。这当然不是说解释语言的性能不是问题,只是它通常不像大多数人所说的那么糟糕。

请记住,即使存在性能问题,在更少和更有效的代码中实现与编译语言相同的任务通常也更容易,这使得编译期间的性能损失在程序的执行时间内可以忽略不计。

对我个人来说,最大的缺点是需要解释器总是在执行之前出现。这通常会降低可移植性,特别是因为解释语言并不总是跨平台的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1610539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文