|
|
在reddit上看到这个:Erlang in the browser: An Erlang Emulator written in JavaScript
太酷了,作者用了5000行的js写了一个Erlang的emulator(官方的beam emulator代码行数可是极多的),记得以前还有伙计用js写了整个Linux OS,还真能运行,现在是不是很流行在browser里执行各种语言啊?
点这里试运行。
Erlang R14B04
Eshell V5.8.5 (abort with ^G)1> 2+3.52> erlang:processes().[<0.0.0>,<0.3.0>,<0.5.0>,<0.6.0>,<0.8.0>,<0.9.0>,<0.10.0>, <0.11.0>,<0.12.0>,<0.13.0>,<0.14.0>,<0.15.0>,<0.16.0>, <0.17.0>,<0.18.0>,<0.19.0>,<0.20.0>,<0.21.0>,<0.24.0>]3> erlang:now().{1327,985077,503001}4> erlang:system_info(os_type).{unix,linux}5> self()! "Hello"."Hello"6> flush().Shell got "Hello"ok7> A=[1,2].[1,2]8> [H|T]=A.[1,2]9> H.110> T.[2]11> 虽然仅仅只有5000行js(代码),但erlang的基本功能都有了,如spawn,基本的bif,message,atom,ets,连erlang的process调度器都有。js解释运行了大部分的bytecode(binary部分还未实现)。
注:js中只实现了emulator,没有实现compiler,所以用户无法定义函数。呈现在browser中的只是简单的erlang shell(shell是eval执行的),shell本身是已经编译好的beam文件。
|
|