本人暂时对静态语言以及编译机制不太了解,如今比较流行的JS引擎V8采用的语言为C++ & JS,其中大部分C++代码实现了引擎的底层核心,一些不涉及硬件的外围API和wrapper之类的用JS来写。其实JS引擎就相当于一门语言的“编译器”,既然能用C语言本身来写C的编译器,那么我的问题就是「从理论上说能否用JS语言本身来实现JS引擎呢?」谢谢!
PS:本人觉得不能。
PS:本人觉得不能。
1
dreampuf Mar 15, 2014 |
2
jybox Mar 15, 2014 理论上肯定没问题啊,任何一个图灵完备的语言都可以实现自举。
|
3
kurtis Mar 15, 2014 eval
|
4
jsonline Mar 15, 2014 via Android 当然可以啊
|
5
Mutoo Mar 15, 2014 js是解析型语言,解析器的难度比编译器低太多了。js要解析自己完全是小菜一叠。
实际上js可以做的事情多着,可以看看js延伸出来的 paperscript (http://paperjs.org) processing.js(http://processingjs.org) 甚至 gameboy emulator (http://imrannazar.com/GameBoy-Emulation-in-JavaScript) 还有更牛的 ECMAScripten(https://github.com/kripken/emscripten/wiki) 能把cpp直接变成js跑 |
6
zoowii Mar 15, 2014 可以啊。用JS实现一个JS的编译器,然后自举
|
9
Numbcoder Mar 15, 2014 JS 是图灵完备的,当然可以!
|
10
guushen OP @Mutoo 感谢回复,我觉得JS本身不能直接操作硬件,如果用JS语言本身来写JS解析器的话,最基础的比如,如何分配变量地址呢?我不是很懂,谢谢!
|
12
yangff Mar 15, 2014
vm.js...
|