有没有可能通过限制谷歌V8对Javascript的支持来创建一种更简单的语言?我想在我自己的工具中嵌入V8引擎来运行动态脚本,并且喜欢V8预置源代码以提高速度的想法。但是,我需要严格限制语言中可能发生的事情。
这意味着没有数据容器(例如数组)的动态分配,没有导入库,没有递归,没有线程。它在哲学上更类似于Renderman着色语言,而不是通用语言。因此,“新”语言要简单得多,我之所以考虑JS,是因为熟悉的语法,以及已经有了一个很好的“编译器”(V8)。我可能还希望它在Chrome的原生代码(NaCl)环境中运行脚本代码,谷歌似乎正在努力在V8中支持它。
重新定义JS“语法”或任何其他定义语言的代码有多容易?
我的另一个选择是从头开始创建一种新的编译语言(可能使用LLVM )。
发布于 2012-12-31 17:28:30
对于你想要的所有功能限制,你需要在V8上进行一个大手术,因为V8从来不是为如此激进的修改而设计的。
另一种解决方案是发明一种类似JavaScript的语言(具有您可以施加的所有限制),并将其编译成标准的JavaScript,然后您可以使用V8 (或任何其他JavaScript引擎,就这一点而言)运行它。这种方法的著名示例是GWT (来自Java)、Dart和TypeScript。
发布于 2013-12-26 22:20:47
从描述概述中进一步了解squirrel语言:http://squirrel-lang.org:“编译器和虚拟机在大约7k行的C++代码中放在一起,并且只增加大约100kb-150kb的可执行文件大小。”
享受吧!
https://stackoverflow.com/questions/13885239
复制相似问题