我想在客户端或服务器端构建一个带有沙盒解释器(或编译器)的网站,该网站可以采用短代码块(python/java/c/c++ 任何通用语言都可以)作为输入并执行它。
我想要构建的是一个地方,在这个地方,给定一个编程问题,用户可以输入解决方案,我们可以运行它通过一些测试用例,以批准解决方案或提供一个失败的测试用例。
寻找指向库、现有实现或总体思路的指针。 非常感谢任何帮助。
最佳答案
有很多竞赛网站都在做类似的事情——TopCoder 和 Timus Online Judge是两个例子。然而,他们没有太多关于该技术的信息。
codepad.org是最接近你想做的事情。他们在定期删除大量沙盒和防火墙的 EC2 服务器上运行程序,以防止漏洞利用。
键盘至少部分基于 geordi ,一个设计用于运行任意 C++ 程序的 IRC 机器人。它使用 Haskell 和陷阱系统调用来防止有害事件。
稍微不那么有趣的是,Google App Engine 的示例项目之一是 Python shell .它依靠 GAE 的服务器端沙盒来防止恶意事件。
在界面方面,最简单的就是做一些类似国际信息学奥林匹克的事情。让人们用目标语言编写一个具有特定名称的函数,然后从您的测试框架中调用它。具有简单的功能,可以让他们在必要时从框架中请求信息。
关于python - Web 服务中的代码解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739214/