質問

私は目を向けました オウム しばらくの間。さまざまな動的言語を実行し、ある程度の相互運用性を可能にするように設計された仮想マシンであることを理解しています(たとえば、PythonスクリプトからPerl関数を呼び出す)。だから、私の質問は2つの部分にあります:

  1. オウムは一般的な用途の準備ができていますか?リリースが行われていることがわかりますが、それが今うまく機能しているのか、それでも進行中の作業なのかは明らかではありません。
  2. 方法に関するドキュメントはありますか 使用する オウム?以前の質問でリンクを見ましたが、オウム固有のコード(PIR、PASMなど)のさまざまなレベルについての講演、またはより多くの言語のサポートを追加する方法についてのすべてのドキュメントを見つけることができます。それは素晴らしいことですが、オウムの既存の言語でコードを実行するにはどうすればよいですか?また、別の言語で書かれたコードを使用するにはどうすればよいですか?

最後に、Flamewarを始めたくありませんが、PerrotがPerl 6と縛られていることは知っています。Pythonが好きです。 Pythonはサポートされている言語であることを理解していますが、現実的には、それは多言語VMとして認識されていますか、それとも好奇心として含まれる他の言語を持つPerl 6通訳ですか?

役に立ちましたか?

解決

私は主にPython開発者なので、偏見があります。しかし、おそらくあなたと同じ方向にあります。

オウムは、多言語VMになることを目的としています。そのperlルーツは時々表示されます( "0"はfalse、ブートストラップ言語NQPはPerlのサブセットです)が、実行時レベルでは非常に言語に依存しません。

とはいえ、言語間の互換性は完全にシームレスではありません。たとえば、文字列タイプはすべての言語のベースとして使用される可能性が高いですが、Rubyオブジェクトにはおそらく、Pythonicを作るためにラッパー(ただしプロキシではありません)が必要です。少なくともこれまでのところ、オブジェクトインターナットのストーリーはありません。

Python 3コンパイラ「Pynie」には、かなりの方法があります。これがレポです http://bitbucket.org/allison/pynie. 。多分あなたは助けたいですか?今のところ、それは非常に若く、まだオブジェクトでさえありません。

そしてあなたの実際の質問に答えるために:

  1. 一種の。それは速くなく、それをターゲットにする言語は完全ではありませんが、記憶をクラッシュさせたり破損したりしません。
  2. 通常、お気に入りの高レベル言語(Python)にコードを書き、.pyコードをオウムにコンパイルします(そこから、必要に応じてネイティブコードにコンパイルできます)。別の開発者はPerl(6)コードを書き込み、それをオウムにコンパイルし、コンパイラがInteropを念頭に置いて書かれている場合、PythonからPerl関数を呼び出すことができます

他のヒント

  1. まだ進行中ですが、言語の実装者や図書館開発者にとっては十分に成熟しています。警告:一部のサブシステムは再加工されています(ガベージコレクション、埋め込み)。そのため、前方の道路にいくつかの隆起があるかもしれません。

  2. 各言語には、コードオウムが理解するコードを生成するコンパイラが必要です。これらのコンパイラは個別にリリースされます。 (見る http://trac.parrot.org/parrot/wiki/languages )オウムを標的とするほとんどの言語は、初期の不完全な状態にあるため、相互運用性は現在大きな問題ではありません。 ParrotはPerl 6通訳者ではありませんが、Rakudo Perl 6は、たまたまオウムを標的とする最も激しく開発されたコンパイラの1つです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top