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

2024-04-29 19:48:27 发布

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

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


Tags: 函数程序web信息列表标准静态关键字
3条回答

虽然javascript python解释器确实存在:http://syntensity.com/static/python.html,但它们似乎没有使用。如果他们不在自己的解释器上至少运行一次验证程序,那么作弊就太容易了。在

在研究了Udacity上的网络活动之后,我可以看到他们使用一堆数据进行ajax调用,然后获得以JSON形式运行的程序的结果。在

估计他们有一个标准的python解释器在一个沙盒中运行,这个解释器将执行分配,然后将结果打包成JSON,返回给客户机并更新到屏幕上。同时,你提交的成绩将作为你的班级成绩的一部分记录下来。在

我没有尝试过Udacity,但是对于语法突出显示部分,可以使用一个简单的后端代码轻松地完成,该代码使用Ajax进行更新。其中一种最简单的方法可以用来进行词法分析,就像在编译器或解释器中一样。。在

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

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

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

虽然没有在本地运行它那么快,但它确实比支持几十万人第一次安装Python要好得多;)

相关问题 更多 >