簡體   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