我々は、実行時にソースコードを解釈して実行する方法を探しています。私は提案が欲しい。
私たちは、CodinGameのように、チャレンジを完了するためのソースコードを書く必要があるゲームを開発しています。
ゲームの目的は、プログラミング分野を始める学生を支援することです。
要件:
- ゲームは生徒が
turnLeft()
、turnRight()
よう呼び出すことができる方法の限られたセットを、持っています - (JavaのデスクトップとAndroidのために)
go()
、LibGDXで開発されており、その他。 IF/ELSE
,FOR
、WHILE
などの文を使用できるようにする必要があります。- 生徒が作成したコードにエラーが表示される場合は、非常に役立ちます。
私たちは実装方法を探し始めました。
最初は「アスペクト指向プログラミング」を使うことを考えましたが、生徒のソースコードを動的に読み取ることのできるものは見つかりませんでした。
InstantJとしてのコンパイラは、JAVACを使用するためオプションではないため、Android内でのビルドが不可能です。
私たちは、ユーザが入力したソースコードと「メモリで実行中のもの」を読み込み、リフレクションによってメソッドを呼び出すことを考えました。またはそのようなもの。
LISPやLOGOインタプリタのようなものも提案されていますが、この場合の問題は構文です。私たちは、将来利用できる言語を学びたいと思っています。
私たちが今見ている解決策はJavaParserです。しかし、このライブラリは文字通りコードパーサを作成し、命令を解釈しません。ここでは、手動でリフレクション経由で呼び出しを実行する必要があります。そして、などIF、FOR、などの条件を解釈することは困難である
質問:
当社の目標は、ユーザーは、Java(またはJavaScript)事前に定義されたメソッドへの呼び出しを行う必要があり、コードを書くことができるということです。メソッドは既にゲームクラスに実装されています。私たちは具体的に図書館を探しているわけではなく、研究の提案をしたいと考えています。
私たちが探しているものはありますか?