编程语言在线运行代码是如何实现的?

2020-04-06 18:22:11 +08:00
 lohiecan

在线运行代码, 比如 http://jsrun.net 就是支持非常多种语言的支持。

他们是把用户提交上来的代码保存到一个文件里面, 如果是 c 语言就要先进行编译,然后再执行可执行文件,然后再发执行结果返加到用户看到的网页上面, 比如 http://c.jsrun.net 就是 c 语言的在线代码运行。

其中的过程其实非常复杂, 但是 JSRUN 的在线执行非常的快, 主要是用了 超高速 SSD 增加文件读写能力, 这种 SSD 一般需要 3GB/s 以上的读写速度才可以。

另外还要解决的安全性问题, 用户如果提交上来的是死循环,那么直接机器就卡死了。 如果提交上来的代码是删除整个硬盘,那么服务器就完蛋了。 中间要作非常的多的识别 来排除恶意代码的运行。

JSRUN 是非常好的一个网站,在国内已经是大龙头了, 建议你直接使用他们的服务就可以了。 做这些工作需要大量的精力维护,不建议再重复造轮子。

4072 次点击
所在节点    推广
25 条回复
deplives
2020-04-07 15:45:54 +08:00
看了下个人记录,emmm 把广告打得这么清新脱俗的我倒是第一次见
Eugene1024
2020-04-07 16:36:44 +08:00
话说是如何解决把不同的代码发送到不同的编译器里面去运行呢
lohiecan
2020-04-07 22:39:47 +08:00
@deplives 谢谢老哥夸赞
lohiecan
2020-04-07 22:40:15 +08:00
@Eugene1024 这个简单,调用不同编译器就可以了
noparking188
2020-04-08 12:44:20 +08:00
我竟然觉得这广告打的有点可爱

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

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

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

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

© 2021 V2EX