2012-09-14 8 views
10

Udacity offre agli studenti un editor Web per accedere ai programmi Python. L'editor riconosce le parole chiave Python e le funzioni integrate e consente di eseguire un programma. Sai come funziona questa tecnologia? I programmi sono inviati ad un back-end ed eseguiti dall'interprete standard di Python o è un interprete Python basato su JavaScript? L'editor contiene semplicemente un elenco statico di parole chiave Python e funzioni built-in o interagisce con Python standard o JavaScript per ottenerle?Come funziona l'interprete di Udacity web Python?

+0

Quella cosa è la beezneez. –

risposta

12

Mentre esistono interpreti javascript python: http://syntensity.com/static/python.html, non sembrano utilizzarne uno. Sarebbe fin troppo facile imbrogliare se almeno non eseguissero i programmi una sola volta per la verifica sul proprio interprete.

Dopo aver esaminato l'attività di rete su Udacity, posso vedere che effettuano una chiamata ajax con un gruppo di dati e quindi restituiscono i risultati del programma in JSON.

A un certo punto, hanno l'interprete python standard in esecuzione in una sandbox che eseguirà i compiti, quindi i risultati vengono raggruppati in JSON, restituiti al client e aggiornati sullo schermo. Allo stesso tempo, i risultati della tua registrazione verranno registrati come parte dei risultati della tua lezione.

2

Non ho provato Udacity, ma per le parti di evidenziazione della sintassi, può essere fatto facilmente con un semplice codice di backend, che viene aggiornato usando un po 'di Ajax. Uno dei modi più semplici possono essere usati come l'analisi lessicale come in compilatori o interpreti ..

5

Molto in ritardo alla festa qui, ma io lavoro come ingegnere presso Udacity, così ho pensato di dare un colpo .

Ci sono due cose fondamentali in corso:

  1. La corrente l'evidenziazione della sintassi e la modifica è fornita da un Codemirror implementation, anche se abbiamo utilizzato diversi redattori differenti negli ultimi due anni.
  2. Quando si preme invio (o esecuzione), il codice viene impacchettato e spedito in un cluster in modalità sandbox che viene eseguito per l'esecuzione. Se stai premendo Invio, è qui che eseguiamo i nostri test sul tuo codice e lo "valutiamo" per vedere se passa. L'output da quello (in varie forme) viene reindirizzato al front-end e ottieni il tuo feedback.
Non

abbastanza veloce come in esecuzione a livello locale, ma sicuramente meglio di supporto a poche centinaia di migliaia di persone che cercano di installare Python per la prima volta;)