2024-04-26 06:12:09 发布
网友
我想用沙盒解释器(或编译器)构建一个网站,它可以在客户端或服务器端使用短代码块(python/java/c/c++任何通用语言都可以)作为输入并执行它。在
我想要建立的是一个地方,在那里给定一个编程问题,用户可以输入解决方案,我们可以运行它通过一些测试用例,要么批准解决方案,要么提供一个测试用例,如果它失败了。在
寻找指向库、现有实现或一般概念的指针。 非常感谢你的帮助。在
对于Python,您可以编译PyPy in sandboxed mode,这为您提供了一个完整的解释器和完整的标准库,但不能执行任意的系统调用。还可以限制已执行脚本的运行时和堆大小。在
Here's some code我写了一段时间来执行pypy沙盒二进制文件中包含Python脚本的任意字符串并返回输出。您可以从常规CPython调用此代码。在
看看这篇论文An Enticing Environment for Programming,它讨论了构建这样一个环境。在
有许多竞赛网站做类似于TopCoder和Timus Online Judge就是两个例子。不过,他们对这项技术并没有太多的信息。在
codepad.org最接近您要做的事情。他们在大量沙盒和防火墙的EC2服务器上运行程序,这些服务器定期被清除,以防止利用漏洞。在
CODEPad至少部分基于geordi,一个IRC BOT,用于运行任意C++程序。它使用Haskell和traps系统调用来防止有害活动。在
稍不感兴趣的是,googleappengine的一个示例项目是Python shell。它依赖于GAE的服务器端沙盒来防止恶意活动。在
在界面方面,最简单的就是做一些类似国际信息学奥林匹克运动会的事情。让人们用目标语言编写具有特定名称的函数,然后从测试框架中调用该函数。有简单的功能,如果需要,可以让他们从框架中请求信息。在
对于Python,您可以编译PyPy in sandboxed mode,这为您提供了一个完整的解释器和完整的标准库,但不能执行任意的系统调用。还可以限制已执行脚本的运行时和堆大小。在
Here's some code我写了一段时间来执行pypy沙盒二进制文件中包含Python脚本的任意字符串并返回输出。您可以从常规CPython调用此代码。在
看看这篇论文An Enticing Environment for Programming,它讨论了构建这样一个环境。在
有许多竞赛网站做类似于TopCoder和Timus Online Judge就是两个例子。不过,他们对这项技术并没有太多的信息。在
codepad.org最接近您要做的事情。他们在大量沙盒和防火墙的EC2服务器上运行程序,这些服务器定期被清除,以防止利用漏洞。在
CODEPad至少部分基于geordi,一个IRC BOT,用于运行任意C++程序。它使用Haskell和traps系统调用来防止有害活动。在
稍不感兴趣的是,googleappengine的一个示例项目是Python shell。它依赖于GAE的服务器端沙盒来防止恶意活动。在
在界面方面,最简单的就是做一些类似国际信息学奥林匹克运动会的事情。让人们用目标语言编写具有特定名称的函数,然后从测试框架中调用该函数。有简单的功能,如果需要,可以让他们从框架中请求信息。在
相关问题 更多 >
编程相关推荐