我现在正在学习Perl。解释型语言的优缺点是什么?
发布于 2009-10-22 23:20:53
所以我将创建这个社区维基( Blatant copy from wikipedia )。
解释语言的优势
解释语言为程序提供了比编译语言更多的灵活性。在解释器中比在编译器中更容易实现的特性包括(但不限于):
内存管理平台独立性(Java的字节码,用于example)
解释语言的缺点
解释器的执行通常比常规程序的执行效率低得多。这是因为要么每条指令都应该在运行时传递一个解释,要么就像在较新的实现中一样,在每次执行之前必须将代码编译为中间表示。虚拟机是性能问题的部分解决方案,因为定义的中间语言更接近于机器语言,因此更容易在运行时进行翻译。另一个缺点是需要在本地机器上使用解释器才能执行。
发布于 2009-10-22 23:17:57
优点:
缺点:
发布于 2009-10-22 23:20:48
最大的缺点?大多数人会说执行速度,但并不总是正确的。如今,大多数现代解释语言在构建时将要解释的文件转换为中间状态,当执行时,该状态会像任何其他语言一样转换为机器码。如今,智能缓存在这些语言虚拟机中非常普遍,这应该不是太大的问题。这当然不是说解释语言的性能不是问题,只是它通常不像大多数人所说的那么糟糕。
请记住,即使存在性能问题,在更少和更有效的代码中实现与编译语言相同的任务通常也更容易,这使得编译期间的性能损失在程序的执行时间内可以忽略不计。
对我个人来说,最大的缺点是需要解释器总是在执行之前出现。这通常会降低可移植性,特别是因为解释语言并不总是跨平台的。
https://stackoverflow.com/questions/1610539
复制相似问题