推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
zhjits

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

  •  
  •   zhjits · May 26, 2015 via Android · 4013 views
    This topic created in 4031 days ago, the information mentioned may be changed or developed.
    可以在网页上直接运行 C 代码(不需要后端编译),并且支持简单的调试功能。
    Supplement 1  ·  May 27, 2015
    这里有个简单的支持不完善的 C++ 解释器:https://github.com/felixhao28/JSCPP
    继续找合适的轮子
    Supplement 2  ·  May 27, 2015
    我要找的是一个 C 语言版的 http://www.codeskulptor.org/ 类似工具,并不是把已有的 C 语言程序编译了到处跑……
    14 replies    2015-05-27 13:11:47 +08:00
    Septembers
        1
    Septembers  
       May 26, 2015
    把C用JavaScript编译成asm.js这样的库似乎没有。。。 CC @TYPCN
    Septembers
        2
    Septembers  
       May 26, 2015
    see http://bellard.org/jslinux/
    你再移植个GCC/clang吧。。。
    zhjits
        3
    zhjits  
    OP
       May 26, 2015
    @Septembers 想过了,只是启动太慢实在是……
    zhjits
        4
    zhjits  
    OP
       May 26, 2015
    @Septembers 试了一下,那东西是带 gcc 的,然而我写了个 hello world 现在编译了二十分钟了一点动静都没有……

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

    这么写应该没问题吧……我都开始怀疑我代码写错了
    zhjits
        5
    zhjits  
    OP
       May 26, 2015
    @Septembers 好了二十分钟以后我看到它出东西了

    hda: irq timeout: status=0xd0 {Busy}
    ide: failed opcode was: unknown
    sneezry
        6
    sneezry  
       May 26, 2015
    @Septembers 终于圆了我想看 rm -rf / 的梦想
    yangff
        7
    yangff  
       May 26, 2015 via Android
    llvm一个clang咯。
    typcn
        8
    typcn  
       May 27, 2015
    @Septembers 性能肯定惨不忍睹,不过有一种方法是把 C 作为解释型语言来运行,比如检测到 cout 就输出。
    zhjits
        9
    zhjits  
    OP
       May 27, 2015
    @typcn 我就是这个意思
    Mutoo
        10
    Mutoo  
       May 27, 2015
    把 c 编译成 js 的到是有。
    https://github.com/kripken/emscripten
    zhjits
        11
    zhjits  
    OP
       May 27, 2015
    @Mutoo 看过了……然而还是需要一个后端来编译。我还是希望能在浏览器里面搞定一切 >_<
    quix
        12
    quix  
       May 27, 2015
    @zhjits 感觉困难... 编译一个 helloworld 简单, 然而要支持 stdio.h 就不简单了
    hooluupog
        13
    hooluupog  
       May 27, 2015
    google搞的那个pnacl。
    zhjits
        14
    zhjits  
    OP
       May 27, 2015
    @yangff 把 clang 前端折腾成 llvm bytecode 然后 emscripten?
    @quix 只需要支持最简单的字符输入输出……应该难度不是很大吧。
    @hooluupog 这个有点像 emscripten……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2601 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 15:53 · PVG 23:53 · LAX 08:53 · JFK 11:53
    ♥ Do have faith in what you're doing.