2016-09-22 11 views
-1

Cent OS 7を使用しています。プログラムは、プログラムによって提供されるステートメントをLua(またはPython)インタプリタで実行させるにはどうしたらいいですか?

Luaインタプリタと対話できるプログラム(Javaまたは他の言語で書かれています)を書きたいと思います。 私のプログラムがステートメントをLuaインタープリタに送り、前の変数が利用可能である間にリアルタイムで実行されることを期待します。

例えば、私のプログラムでは、Luaインタプリタ4へのa = 4; print(a);のフィードが画面に表示されます。その後、プログラムは他の作業を行います。その後、n = 0; for i=1,4 do n = n + i; end; print(n);をインタープリタに送り、10が画面に表示されます。

注:私が望むのは、私のプログラムがそれを前の状態に保ちながら、文を実行するということです。私のプログラムは、Luaインタプリタの変数にアクセスする必要はありません。

私は別々にLuaインタプリタを呼び出そうとしましたが、期待どおりに動作しません。 別の解決策は、以前のすべてのステートメントを記録し、新しいステートメントを実行する前にそれらを実行することです。しかし、これは明らかに効率的ではありません。

これを行う簡単な方法はありますか?サブプロセスの作成やシステムコールの作成など

+0

私はLuaインタプリタについては特に分かりませんが、端末から呼び出せれば、おそらく 'subprocess'モジュールを使ってそれにアクセスすることができます。 https://docs.python.org/2/library/subprocess.html –

+0

[ここではどのような話題がありますか?](http://stackoverflow.com/help/on-topic)と[どうすればよいですか良い質問をしますか?](http://stackoverflow.com/help/how-to-ask)。あなたの質問は非常に幅広く、特定のプログラミング上の問題ではありません。また、あなたはあなたの研究成果のどれも提供しません。いくつかの調査と研究により、より多くの洞察が得られます。 –

+0

私はこれをあまりにも広いものとしてフラグを立てます。私が旗を立てようとしている質問に答えるなら、それは不道徳なことか悪い例ですか? –

答えて

0

あなたの質問が非常に広い(任意の言語でLuaやPythonを解釈する)ので、私はあなたにいくつかのヒントを与えることができます。

CまたはC++で記述する場合は、Luaライブラリを直接使用できます。おそらくあなたはLua文を実行し、C言語での値をLuaコードに見せて、C言語関数をLuaコードで利用できるようにし、そしてLuaコードの値にアクセスできるようにします。

Javaで記述する場合は、LuaライブラリのJNIラッパーを記述するか、別のLua実装を使用します。 how can I embed lua in java?を参照してください。

他の言語については、基本的に同じオプションがあります。使用可能な言語を使用するか、言語からCライブラリ関数にアクセスする方法を見つけることができます。後者は、最も関連性の高いプログラミング言語で可能です。

Pythonでは、状況は似ています。例えば、Java Python IntegrationおよびIntegrating Python With Other Languagesを参照されたい。

+0

なぜ私はあなたの質問が今や広いと思うのか分かります。私は、サブプロセスを作成し、システムコールをいくつか作成することでこれを達成できることを願っています。これは、Luaと私が使用する言語の間のブリッジとは無関係です。 –

+0

私は問題を編集して、それほど広く見えないようにしました。 –

+0

この回答はどのように役立ちませんか?私はあなたの問題のいくつかの選択肢を概説し、関連する質問にリンクしました。これらすべてのソリューションは、あなたの状態を維持するという問題のために機能します。 –

関連する問題