0

我正在创建一个从语言到 JavaScript 的编译器。根据定义,该语言具有引用透明的功能。对于 JavaScript,这意味着矩阵/向量求和等数值运算的大量开销,因为每次运算都必须创建新数组。我试图找出一种解决方法,但事实证明它比我想象的要棘手。有没有办法解决这个问题?

4

2 回答 2

0

您也许可以在https://github.com/kripken/emscripten/wikihttps://code.google.com/p/v8/中获得一些线索

我知道他们都在这方面做了很多工作。

于 2013-10-04T16:36:22.600 回答
0

处理引用透明函数的常用方法是什么?

我的看法是你会想要缓存函数的输出,但是你如何处理作用域和垃圾收集呢?

如果您尽力而不是实际实现引用透明函数,该怎么办。同一范围内的表达式将从缓存中受益,否则将不得不重新计算。这解决了垃圾收集的问题。

或者,您可以设置一些全局缓存方案,它甚至不尝试进行垃圾收集,而只是使用一些通用的有限空间缓存方案进行修剪,例如:最近使用的、最常用的或随机替换。这放宽了垃圾收集约束。

于 2013-10-04T16:37:05.573 回答