【问题标题】:Why isn't it good non-compile scripting languages to use for intensive calculations?为什么非编译脚本语言不能用于密集计算?
【发布时间】:2013-12-01 17:15:08
【问题描述】:

我正在阅读一本关于网络技术的电子书,我发现了这个。

JavaScript 本身就是一门语言(理论上它是不受约束的 到 web 开发),它被大多数 web 客户端支持在任何 平台,并且具有一些面向对象的能力。 JavaScript 是 不是编译语言,因此不适合密集计算 或编写设备驱动程序,它必须以一件的形式到达 客户端浏览器被解释,所以它也不安全,但它 在网页中使用时效果很好。

我的问题是为什么我们不能使用 JavaScript 进行处理密集型计算?书中没有描述。但是,我也将 JavaScript 用于移动应用程序,在某些情况下我们进行了非常大的计算。非编译语言对此有何影响?

【问题讨论】:

  • 与科学家所做的相比,您的“大型计算”想法非常小。
  • “理论上”?那时我一定想象过我用它构建的所有命令行工具。
  • 愚蠢的书。大多数(如果不是全部)现代浏览器在执行之前将 javascript 编译为本机机器码。此外,如果缺少零件,其他所有代码也将无法正常工作,因此第二点也有点毫无意义。我强烈建议寻找另一本书...
  • 感谢 cmets,是的,我阅读了包发布 PHP 和 Ajax 响应式 Web 开发的书,为像我这样的新手避免上述内容。
  • 安全点是一个完整的稻草人。如果你想让“我”在我的机器上运行它,不管是什么语言或者它是否被编译都没有关系。做出那个决定,我不能保证它的安全。即使这是可能的,也只有无知的人会运行它,因为他们不会安全。

标签: javascript compiler-construction


【解决方案1】:

这两个部分。 在非编译语言中,您必须尝试编译或解释它。优化可以降低成本,即缓存编译结果,当然这会引入复杂性并占用内存。 另一方面是在程序编译后,可以针对特定目的对结果进行调整和优化。

但是,您必须考虑上下文,在当时可用的最好的超级计算机上,估计需要 4 年才能完成隔离特定 Calibi-Yau 空间的计算。所以你对大的定义和写这篇文章的人可能没有可比性。当然,它们可能是那些微优化类型之一......

使用现代编译器/解释器和您可以编写的最优化的代码,必须是一个真正的边缘案例才能使这一点变得重要,并且在这些场景中几乎可以使用预编译代码。

【讨论】:

  • “另一方面是在程序编译后,可以针对特定目的调整和专门优化结果”是什么意思。 ?你说结果可以调整。目前尚不清楚。你能解释一下吗?
  • 一旦编译器编译完成,例如生成一个 exe。如果你知道的足够多或者你有工具,你可以在机器代码级别优化特定的操作系统,甚至硬件。现代编译器非常好,但它们仍然适用于通用解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 2011-03-03
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
相关资源
最近更新 更多