Udacity为学生提供了一个Web编辑器来输入Python程序。编辑器识别Python关键字和内置函数,并允许运行程序。你知道这项技术是如何运作的吗?程序是提交给后端并由标准Python解释器执行还是基于JavaScript的Python解释器?编辑器是否只是持有Python关键字和内置函数的静态列表,还是与标准或基于JavaScript的Python交互以获取这些?
答案 0 :(得分:12)
虽然javascript python解释器确实存在:http://syntensity.com/static/python.html,但它们似乎没有使用。如果他们至少没有运行一次程序来对自己的翻译进行验证,那就太容易作弊了。
在查看Udacity上的网络活动后,我可以看到他们使用一堆数据进行ajax调用,然后以JSON的形式运行程序的结果。
猜测他们有一个标准的python解释器在沙箱中运行,它将执行分配,然后将结果打包成JSON,返回给客户端并更新到屏幕。同时,您提交的结果将被记录为课程结果的一部分。
答案 1 :(得分:5)
非常来到这里的聚会很晚,但我在Udacity担任工程师,所以我想我会试一试。
有两个基本的事情发生:
没有在本地运行它那么快,但肯定会支持数十万人第一次尝试安装Python;)
答案 2 :(得分:2)
我没有尝试过Udacity,但是对于语法高亮部分,可以使用简单的后端代码轻松完成,后端代码使用一些Ajax进行更新。其中一种最简单的方法可以用作编译器或解释器中的词法分析。