通过限制Google的V8中的Javascript支持来创建更简单的,特定于领域的语言?



是否可以通过限制Google V8中对Javascript的支持来创建一种更简单的语言?我想将V8引擎嵌入到我自己的工具中以运行动态脚本,并且喜欢V8为速度对源代码进行预初始化的想法。然而,我需要严格限制语言中的可能性。

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

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

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

对于您想要的所有功能限制,您需要在V8上进行大手术,因为V8从未被设计用于如此彻底的修改。

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

仔细看看松鼠语言:http://squirrel-lang.org从描述概述:"编译器和虚拟机可以组合在大约7k行C++代码中,只增加了大约100kb-150kb的可执行文件大小。">

享受吧!

相关内容

最新更新