口译语言的优缺点

时间:2009-10-22 23:12:43

标签: programming-languages interpreted-language

我现在正在学习Perl,但解释语言的优点和缺点是什么?因为我开始学习Perl,因为我的朋友开始了,那么它只是我的经验中的一种语言。感谢。

9 个答案:

答案 0 :(得分:11)

Blatant copy from wikipedia所以我会制作这个社区维基。

解释语言的优点

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

  • 平台独立性(例如Java的字节代码)
  • 评估者的反思和反思使用(例如,一阶评估函数)
  • 动态打字
  • 易于调试(以解释语言获取源代码信息更容易)
  • 小程序大小(因为解释型语言可灵活选择指令代码)
  • 动态范围
  • 自动内存管理

解释性语言的缺点

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

答案 1 :(得分:5)

优点:

  • 快速原型设计(无编写,编译,执行周期)
  • 跨平台(假设每个平台都有解释器)

缺点:

  • 性能(不会像编译语言一样快)

答案 2 :(得分:2)

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

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

就我个人而言,最大的缺点是需要在执行之前始终存在解释器。这通常会降低可移植性,特别是因为解释型语言并不总是跨平台。

答案 3 :(得分:1)

缺点:

  • 最大的缺点可能是执行速度

临:

  • 最大的好处可能是周转时间,即代码测试迭代循环

答案 4 :(得分:1)

为了明确而广泛地说,编译语言往往具有比解释语言更高的性能,因为编译排除了对运行时解释器的需求。

编译语言更适合商业桌面软件,因为源代码不随附。

解释语言的学习速度往往更快,因为它们允许您快速编辑/运行/重复而无需等待编译器。根据我的经验,他们也倾向于更高级别,这也使他们更容易。

答案 5 :(得分:0)

Wikipedia有一个关于优缺点的页面。任何显着高级的解释语言都可以实际编译成本机二进制文件,从而模糊了解释语言的优缺点之间的界限。

PERL是其中一种模糊线条的语言。虽然它以其强大的脚本语言而闻名,但您可以将其编译为原生语言。

答案 6 :(得分:0)

PERL等动态语言的“缓慢”可能不再是问题。以下是动态语言领域最新趋势的精彩演示:

http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html

答案 7 :(得分:0)

因为java是解释语言

<强>优点:

  • 兼容性:Java虚拟机赞同“一次编写,随处运行”这一概念。
  • 安全性:在JVM中运行的程序,因此如果发生任何故障,这不会影响操作系统文件。
  • 内存管理。

<强>缺点:

  • Java虚拟机有很多实现,例如在编写使用Java 8功能的程序时,该程序必须在JVM上运行,版本不少于8个。

答案 8 :(得分:0)

解释型语言的显着优点是不必针对每个硬件目标分别进行编译。

缺点是它会使代码执行速度变慢。