【发布时间】:2011-01-17 12:33:37
【问题描述】:
我正在阅读一个演示文稿,其中比较了不同的编程语言。衡量的特征之一是“语言表现”。什么意思?
【问题讨论】:
-
枕边谈话效果的委婉说法。
-
如果没有在演示文稿中定义,我会说这是一个糟糕的演示文稿。
标签: programming-languages comparison computer-science terminology
我正在阅读一个演示文稿,其中比较了不同的编程语言。衡量的特征之一是“语言表现”。什么意思?
【问题讨论】:
标签: programming-languages comparison computer-science terminology
真正的答案:它没有任何意义,或者该演示文稿的作者当时在想什么。
也许它的意思是“相对于其他语言执行具有相同语义的操作需要多少时间”?但谁能说呢?
【讨论】:
我将语言性能定义为当提供典型的惯用算法实现时,语言的最佳现有实现的性能。
某些语言比其他语言更容易编写有效的实现。例如,C 基本上一直是一种“快速”语言,因为它非常接近金属并且易于为其编写高效的编译器。由于性能在技术上是实现的属性,因此随着实现的改进,慢速语言可以成为快速语言。例如,Java 在其早期版本中被解释并且被认为(当时正确地)是一种“慢”语言。从那时起,JIT 编译器和垃圾收集器变得如此出色,以至于 Java 现在理所当然地应该在“快速”语言中占有一席之地。这说明了为什么需要对语言性能进行此类比较。
【讨论】:
X,而另一个程序假设它可以将 其 数据写入地址 X,那么这些程序将崩溃。因此,虚拟内存假装这些程序中的任何一个是整个宇宙中唯一的程序,并将程序 A 的地址 X 和程序 B 的地址 X 转换为两个不同的地址。 Java、PHP、Ruby、Python、ECMAScript、Perl 等(IOW:现实世界中实际使用的所有语言)不允许直接访问内存,因此不需要 VM。
这是一个加载的问题,肯定需要解释。如果这是一篇高质量的论文,它应该准确地说明他们是如何测量它的,这样读者就可以对数字的有效性做出自己的判断。我将如何衡量它是:
我会创建/找到一系列程序,它们做的事情完全相同,并且可以用每种语言以非常接近相同的方式编写。可能已经存在一套软件(la SPEC cpu2006)可以做到这一点。找到这些程序后,我会运行它们并测量性能。在这里,仍然很难得出结论,因为不同的语言(和/或运行时)做得更好和更差,而且很难找到一组“正确”运行所研究语言的所有部分的程序。
【讨论】:
通常这意味着作者更喜欢所讨论的语言之一,并试图让您相信他的偏好是有效的,并且基于可靠的事实而不是个人品味(或者可以说是缺乏个人品味)。
【讨论】:
据我所知,这不是一个具有普遍公认定义的术语。实际上。 “语言表现”可能意味着“我最喜欢的语言得分很高的一些指标”。更严重的是,演示文稿应该定义术语。如果这个术语没有以易于理解的方式定义,那么演示文稿就缺乏实质内容。
【讨论】:
某些语言需要大型运行时环境才能正常运行,这主要适用于 Python 或 Ruby 等解释型语言。许多编译语言的运行时开销较小,例如 Objective-C。这些因素会影响性能。
【讨论】: