是的,有 重蹈覆辙,但这是5年前问的,已经很久没有更新了。
2020年,随着WebAssembly的发展,有没有办法在浏览器中本地编译运行一个简单的C程序?
有一个平台叫 WasmFiddle 我认为我们可以在js中实现标准的库,也许可以将其导出为wasm,但这需要大量的工作。但这需要大量的工作。
我的初衷是为学生搭建一个基于Web的IDE,让他们学习C语言编程,而不需要花费大量成本在服务器上进行远程运行。所以,只需要stdio.h、math.h、string.h等库。
更新一下。这个 似乎是libc到wasm的伟大实现。
不需要很高的性能,所以基于wasm的解决方案和可能在JS中实现的运行c的虚拟机都是很好的解决方案。
Emscripten 和 WASM 是这里的两个流行的解决方案。
不要期望有很好的性能,但是你应该就可以用一点JavaScript、CSS和HTML来链接它,用于你的代码编辑和控制台视图。
如果你对运行服务器没意见,那么你可以使用这个。Jupyter笔记本 内核。https:/github.comjupyter-xeusxeus-cling。
这是WASM中的一个例子,没有服务器。https:/github.comtbflemingcib)。
要想让你的头脑有点发蒙,关于什么可以用emcripten和其他相关的技术,检查出工作的 Fabrice Bellard关于 Tiny C编译器, 小鸸鹋和 JsLinux.
JsLinux,基本上是用JavaScript运行虚拟化的机器,Bellard有运行Linux,和Windows2000的例子。
你可以去核,只是把所有的东西放在一个虚拟机里,clang作为二进制运行在一些输入代码上,然后编译一些二进制文件作为输出,比然后再次在虚拟机里运行。都是客户端,但由于虚拟化的原因,性能会有所下降。
举个例子。https:/twitter.comalexpignottistatus1261357985617469442?s=20。 (我的一位同事正是在研究这个问题)