Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python web服务中的代码解释器_Python_Web Applications_Interpreter - Fatal编程技术网

Python web服务中的代码解释器

Python web服务中的代码解释器,python,web-applications,interpreter,Python,Web Applications,Interpreter,我想在客户端或服务器端构建一个带有沙盒的解释器(或编译器)的网站,该解释器(或编译器)可以将短代码块(python/java/c/c++任何通用语言都可以)作为输入并执行它 我想要建立的是一个地方,在那里,给定一个编程问题,用户可以输入解决方案,我们可以通过一些测试用例来运行它,或者批准解决方案,或者提供一个出现问题的测试用例 寻找指向库、现有实现或总体想法的指针。 非常感谢您的帮助。有许多竞赛网站都做了类似的事情——TopCoder和以下两个例子。然而,他们没有太多关于这项技术的信息 最接近你

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

我想要建立的是一个地方,在那里,给定一个编程问题,用户可以输入解决方案,我们可以通过一些测试用例来运行它,或者批准解决方案,或者提供一个出现问题的测试用例

寻找指向库、现有实现或总体想法的指针。
非常感谢您的帮助。

有许多竞赛网站都做了类似的事情——TopCoder和以下两个例子。然而,他们没有太多关于这项技术的信息

最接近你想要做的事情。他们在装有大量沙盒和防火墙的EC2服务器上运行程序,这些服务器会定期清除,以防止利用漏洞

CODEPad至少部分地基于一个IRC BOT,它运行任意的C++程序。它使用Haskell和陷阱系统调用来防止有害活动

谷歌应用程序引擎的一个示例项目是一个稍微不那么有趣的项目。它依靠GAE的服务器端沙箱来防止恶意活动



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

对于Python,您可以编译它,它为您提供完整的解释器和完整的标准库,但不能执行任意系统调用。您还可以限制已执行脚本的运行时和堆大小


我不久前写了一篇文章,在pypy沙盒二进制文件中执行包含Python脚本的任意字符串并返回输出。你可以从普通的CPython调用这段代码。

看一看关于构建这样一个环境的文章。

Chrome将支持本机客户端,尽管Firefox表示他们没有支持这种技术的计划。请阅读所有这些内容,然后更新你的问题:可能重复的