有没有 JS 写的 C 语言解释器?

2015-05-26 20:29:29 +08:00
 zhjits
可以在网页上直接运行 C 代码(不需要后端编译),并且支持简单的调试功能。
3549 次点击
所在节点    JavaScript
14 条回复
Septembers
2015-05-26 20:48:52 +08:00
把C用JavaScript编译成asm.js这样的库似乎没有。。。 CC @TYPCN
Septembers
2015-05-26 20:59:08 +08:00
see http://bellard.org/jslinux/
你再移植个GCC/clang吧。。。
zhjits
2015-05-26 21:01:45 +08:00
@Septembers 想过了,只是启动太慢实在是……
zhjits
2015-05-26 21:19:54 +08:00
@Septembers 试了一下,那东西是带 gcc 的,然而我写了个 hello world 现在编译了二十分钟了一点动静都没有……

```
#include <stdio.h>
int main(){printf("Hello world!\n"); return 0;}
```

这么写应该没问题吧……我都开始怀疑我代码写错了
zhjits
2015-05-26 21:21:42 +08:00
@Septembers 好了二十分钟以后我看到它出东西了

hda: irq timeout: status=0xd0 {Busy}
ide: failed opcode was: unknown
sneezry
2015-05-26 21:28:23 +08:00
@Septembers 终于圆了我想看 rm -rf / 的梦想
yangff
2015-05-26 21:41:46 +08:00
llvm一个clang咯。
typcn
2015-05-27 04:51:41 +08:00
@Septembers 性能肯定惨不忍睹,不过有一种方法是把 C 作为解释型语言来运行,比如检测到 cout 就输出。
zhjits
2015-05-27 08:31:29 +08:00
@typcn 我就是这个意思
Mutoo
2015-05-27 09:26:29 +08:00
把 c 编译成 js 的到是有。
https://github.com/kripken/emscripten
zhjits
2015-05-27 09:32:15 +08:00
@Mutoo 看过了……然而还是需要一个后端来编译。我还是希望能在浏览器里面搞定一切 >_<
quix
2015-05-27 10:33:59 +08:00
@zhjits 感觉困难... 编译一个 helloworld 简单, 然而要支持 stdio.h 就不简单了
hooluupog
2015-05-27 11:12:20 +08:00
google搞的那个pnacl。
zhjits
2015-05-27 13:11:47 +08:00
@yangff 把 clang 前端折腾成 llvm bytecode 然后 emscripten?
@quix 只需要支持最简单的字符输入输出……应该难度不是很大吧。
@hooluupog 这个有点像 emscripten……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/193928

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX