繁体   English   中英

Udacity Web Python解释器如何工作?

[英]How does Udacity web Python interpreter work?

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

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

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

猜测他们有一个标准的python解释器在沙盒中运行,它将执行分配,然后将结果打包成JSON,返回给客户端并更新到屏幕。 同时,您提交的结果将作为课程结果的一部分进行记录。

很晚到这里聚会,但我作为在Udacity的工程师工作,所以我想我给它一个镜头。

有两个基本的事情发生:

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

没有在本地运行它那么快,但肯定能够支持数十万人第一次尝试安装Python;)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM