Javascript Udacity web Python解释器是如何工作的?

Javascript Udacity web Python解释器是如何工作的?,javascript,python,Javascript,Python,为学生提供一个web编辑器来输入Python程序。编辑器识别Python关键字和内置函数,并允许运行程序。你知道这项技术是如何工作的吗?程序是提交到后端并由标准Python解释器执行,还是由基于JavaScript的Python解释器执行?编辑器只是保存Python关键字和内置函数的静态列表,还是与标准或基于JavaScript的Python交互以获取这些内容?虽然JavaScript Python解释器确实存在,但它们似乎没有使用。如果他们不在自己的解释器上至少运行一次程序进行验证,那么作弊就

为学生提供一个web编辑器来输入Python程序。编辑器识别Python关键字和内置函数,并允许运行程序。你知道这项技术是如何工作的吗?程序是提交到后端并由标准Python解释器执行,还是由基于JavaScript的Python解释器执行?编辑器只是保存Python关键字和内置函数的静态列表,还是与标准或基于JavaScript的Python交互以获取这些内容?

虽然JavaScript Python解释器确实存在,但它们似乎没有使用。如果他们不在自己的解释器上至少运行一次程序进行验证,那么作弊就太容易了

在查看了Udacity上的网络活动之后,我可以看到他们使用一堆数据进行ajax调用,然后以JSON返回程序运行的结果


据猜测,他们在沙箱中运行标准的python解释器来执行分配,然后将结果打包成JSON,返回给客户机并更新到屏幕上。同时,您提交的结果将被记录为类结果的一部分。

我没有尝试过Udacity,但对于语法突出显示部分,可以使用简单的后端代码轻松完成,该代码使用一些Ajax更新。最简单的方法之一可以用作编译器或解释器中的词法分析

很晚才来参加这里的聚会,但我在Udacity做工程师,所以我想试试看

有两件基本的事情正在发生:

  • 当前的语法突出显示和编辑由提供,尽管在过去几年中我们使用了几种不同的编辑器
  • 当您点击submit(或run)时,您的代码被打包并发送到我们运行以执行的沙盒集群。如果您正在点击submit,我们将在这里对您的代码运行我们自己的测试,并对其进行“评分”,以查看其是否通过。它的输出(以各种形式)通过管道传回前端,您可以得到反馈

  • 没有本地运行的速度快,但它肯定比支持几十万人第一次尝试安装Python要好;)

    那东西就是啤酒。