2012-09-14 10 views
10

Udacity le da a los estudiantes un editor web para ingresar a los programas de Python. El editor reconoce las palabras clave de Python y las funciones integradas, y permite ejecutar un programa. ¿Sabes cómo funciona esta tecnología? ¿Los programas se envían a un back-end y son ejecutados por el intérprete estándar de Python o es un intérprete de Python basado en JavaScript? ¿El editor simplemente contiene una lista estática de palabras clave y funciones integradas de Python o interactúa con Python estándar o basado en JavaScript para obtenerlas?¿Cómo funciona el intérprete de Udacity web Python?

+0

Esa cosa es el Beezneez. –

Respuesta

12

Mientras que los intérpretes de python javascript existen: http://syntensity.com/static/python.html, no parecen estar utilizando uno. Sería demasiado fácil engañar si al menos no ejecutaran los programas una vez para la verificación de su propio intérprete.

Después de ver la actividad de la red en Udacity puedo ver que hacen una llamada ajax con un montón de datos y luego obtienen los resultados del programa en JSON.

Supongo que tienen el intérprete de python estándar ejecutándose en un entorno limitado que ejecutará las asignaciones, luego los resultados se empaquetan en JSON, se devuelven al cliente y se actualizan a la pantalla. Al mismo tiempo, los resultados de su presentación se registrarán como parte de los resultados de su clase.

2

No he probado Udacity, pero para las partes de resaltado de sintaxis, se puede hacer fácilmente con un código de backend simple, que se actualiza utilizando algunos Ajax. Una de las formas más sencillas se puede utilizar como el análisis léxico como en los compiladores o intérpretes ..

5

muy tarde a la fiesta aquí, pero trabajo como ingeniero en Udacity, por lo que pensé que le daría un tiro .

Hay dos cosas fundamentales pasando:

  1. El resaltado de sintaxis actual y la edición es proporcionada por un Codemirror implementation, aunque hemos utilizado varios editores diferentes en los últimos dos años.
  2. Cuando presiona enviar (o ejecutar), su código se empaqueta y se envía a un clúster de espacio aislado que ejecutamos para su ejecución. Si está presionando enviar, aquí es donde ejecutamos nuestras propias pruebas contra su código y lo "clasificamos" para ver si pasa. El resultado de eso (en varias formas) se canaliza hacia el frente y obtienes tu opinión.
No

tan rápido como ejecutar de forma local, pero los golpes seguros que apoyan unos pocos cientos de miles de personas que tratan de instalar Python por primera vez;)

Cuestiones relacionadas