2012-09-14 99 views
10

Udacityは、学生にPythonプログラムを入力するためのWebエディタを提供します。エディタはPythonのキーワードと組み込み関数を認識し、プログラムを実行できるようにします。この技術の仕組みを知っていますか?プログラムはバックエンドに提出され、標準のPythonインタプリタによって実行されるのですか、JavaScriptベースのPythonインタプリタですか?エディタは単にPythonのキーワードと組み込み関数の静的リストを保持しているのでしょうか、それとも標準またはJavaScriptベースのPythonと相互作用してこれらを取得していますか?Udacity Web Pythonインタプリタはどのように機能しますか?

+0

そのことはbeezneezです。 –

答えて

12

javascriptのPythonインタプリタは存在しますが、http://syntensity.com/static/python.htmlは、1つを使用していないようです。彼らが自分の通訳で検証するために一度もプログラムを実行していなければ、カンニングするのは簡単すぎるでしょう。

Udacityのネットワークアクティビティを調べた後、データの集まりでajaxコールを行い、JSONでプログラムの実行結果を取得することができます。

標準的なPythonインタプリタがサンドボックス内で実行され、割り当てを実行すると、結果はJSONにパックされ、クライアントに返されて画面に更新されます。同時に、提出した結果は、クラス結果の一部として記録されます。

2

私はUdacityを試していませんが、構文の強調表示の部分では、簡単なバックエンドコードで簡単に行うことができます。これはいくつかのAjaxを使用して更新されます。最も簡単な方法の一つは、

5

非常後半ここにパーティーに...コンパイラやインタプリタのような字句の分析として使用することができますが、私はUdacityでエンジニアとして働くので、私は、私はそれに打撃を与えるだろう考え出し。

起こって二つの基本的なものがあります。

  1. 我々は過去数年で、いくつかの異なるエディタを使用していたが、現在の構文の強調表示や編集は、Codemirror implementationによって提供されるが。
  2. submitを押す(または実行する)と、コードがパッケージ化され、実行するために実行するサンドボックス化されたクラスタに出荷されます。あなたが提出を打つ場合、これはあなたのコードに対して独自のテストを実行し、それが合格するかどうかを見るために "成績"します。その(さまざまな形式の)出力はフロントエンドにパイプされ、フィードバックが得られます。ないほど速いローカルで実行するよう

が、初めてのPythonをインストールしようとしている数十万人を支えるそれは確かにビート;)

関連する問題