Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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
Javascript 是否可以使用NODE.JS(或PYTHON)开发一个ACM在线评判系统?_Javascript_Python_Node.js_Compiler Construction - Fatal编程技术网

Javascript 是否可以使用NODE.JS(或PYTHON)开发一个ACM在线评判系统?

Javascript 是否可以使用NODE.JS(或PYTHON)开发一个ACM在线评判系统?,javascript,python,node.js,compiler-construction,Javascript,Python,Node.js,Compiler Construction,我是新来的,如果问题这么简单,我为此道歉 假设我想开发一个经典的在线法官系统,很明显,核心部分是 将用户代码获取到文件中 在服务器上编译它 在服务器上运行它(使用一些沙箱工具以防止损坏) 程序自动退出,然后检查答案 或者得到程序崩溃的信号 我想知道是否有可能使用Node.js完成所有的事情,如何完成沙箱的事情。有没有编译沙盒运行中止检查的例子 其他: 使用PYTHON开发这样的系统是否更方便 提前感谢。要完成沙箱,只需在一个闭包中运行代码,将所有令人担忧的调用重新分配给NaN,就可以相当

我是新来的,如果问题这么简单,我为此道歉

假设我想开发一个经典的在线法官系统,很明显,核心部分是

  • 将用户代码获取到文件中
  • 在服务器上编译它
  • 在服务器上运行它(使用一些沙箱工具以防止损坏)
    • 程序自动退出,然后检查答案
    • 或者得到程序崩溃的信号
我想知道是否有可能使用Node.js完成所有的事情,如何完成沙箱的事情。有没有编译沙盒运行中止检查的例子

其他: 使用PYTHON开发这样的系统是否更方便


提前感谢。

要完成沙箱,只需在一个闭包中运行代码,将所有令人担忧的调用重新分配给NaN,就可以相当容易地完成此任务


例如,如果代码在一个闭包中执行,其中eval=NaN

这些步骤中的大多数都是标准的——创建一个文件,运行一个系统调用来编译一些东西,用I/O来处理——我认为除了“在沙箱中运行”这一非常关键的步骤之外,任何一种语言都应该能够做到这一点我知道几种沙箱解决方案:

  • 使用OS命令限制或删除功能(linux中的chroot、setrlimit、文件系统权限)
  • 从正在分级的语言中删除所有危险的功能
  • 中断系统事件
  • 在虚拟机中运行沙箱
  • 这份清单可能并不详尽。我参与的系统使用选项1。同样,大部分工作都是在系统调用中完成的,所以我无法想象一种语言比另一种语言好那么多?我们使用php进行大级别的工作,使用C进行沙箱处理。这有助于回答你的问题吗