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

有帮助吗?

解决方案

公然抄袭维基百科 所以我将制作这个社区维基。

解释型语言的优点

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

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

解释型语言的缺点

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

其他提示

优点:

  • 快速原型制作(无编写、编译、执行周期)
  • 跨平台(假设每个平台都存在解释器)

缺点:

  • 性能(不会像编译语言那么快)

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

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

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

缺点:

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

专业人士:

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

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

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

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

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

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

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

http://steve-yegge.blogspot的.com / 2008/05 /动态语言打击-back.html

由于java是解释性语言

优点:

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

缺点:

  • Java虚拟机有很多实现,例如,当编写使用Java 8功能的程序时,该程序必须在Java 8版本以上的JVM上运行。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top