web服务中的代码解释器

2024-04-26 06:12:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用沙盒解释器(或编译器)构建一个网站,它可以在客户端或服务器端使用短代码块(python/java/c/c++任何通用语言都可以)作为输入并执行它。在

我想要建立的是一个地方,在那里给定一个编程问题,用户可以输入解决方案,我们可以运行它通过一些测试用例,要么批准解决方案,要么提供一个测试用例,如果它失败了。在

寻找指向库、现有实现或一般概念的指针。 非常感谢你的帮助。在


Tags: 代码用户沙盒语言客户端编译器网站编程
3条回答

对于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的服务器端沙盒来防止恶意活动。在


在界面方面,最简单的就是做一些类似国际信息学奥林匹克运动会的事情。让人们用目标语言编写具有特定名称的函数,然后从测试框架中调用该函数。有简单的功能,如果需要,可以让他们从框架中请求信息。在

相关问题 更多 >