1

是否可以通过限制 Google V8 中的 Javascript 支持来创建更简单的语言?我想将 V8 引擎嵌入到我自己的工具中以运行动态脚本,并且喜欢 V8 预编译源以提高速度的想法。但是,我需要严格限制语言中的可能性。

这意味着没有数据容器(例如数组)的动态分配,没有导入的库,没有递归,没有线程。它在哲学上更类似于 Renderman 着色语言,而不是通用语言。因此,“新”语言要简单得多,由于熟悉的语法以及已经有一个很好的“编译器”(V8),我只考虑 JS。我可能还希望它在 Chrome 的本机代码 (NaCl) 环境中运行脚本代码,Google 似乎正在努力在 V8 中支持该环境。

重新定义 JS 的“语法”或其他定义语言的代码有多容易?

我的另一个选择是从头开始创建一种新的编译语言(也许使用 LLVM 的东西)。

4

2 回答 2

0

仔细看看 squirrel 语言: http ://squirrel-lang.org 来自描述概述:“编译器和虚拟机在大约 7k 行 C++ 代码中组合在一起,并且只增加了大约 100kb-150kb 的可执行文件大小。”

享受!

于 2013-12-26T14:20:47.167 回答
0

对于您想要的所有功能限制,您需要对 V8 进行一次大手术,因为 V8 从来没有为如此激进的修改而设计。

另一种解决方案是发明一种类似 JavaScript 的语言(具有您可以施加的所有限制)并将其编译成普通的 JavaScript,然后您可以使用 V8(或任何其他 JavaScript 引擎,就此而言)运行。这种方法的著名示例是 GWT(来自 Java)、Dart 和 TypeScript。

于 2012-12-31T09:28:29.680 回答