物語
Parrotは当初、Perl 6言語を実装する手段として考えられていましたが、PerlとPythonに基づいた新しい言語の作成に関する2001年のエイプリルフールのジョークにちなんで名付けられました。 2009年3月17日、Parrot 1.0がリリースされました。 2010年1月までに、実稼働対応のParrot 2.0が計画されています。
コンセプト
Parrotは動的言語の機能を考慮して設計されており、静的言語(JVM、.NET)の仮想マシンよりも効率的にプログラムを実行する必要があります。 Parrotは言語間の相互運用性をサポートしています。したがって、pearlで記述されたクラスはPythonで継承され、Tclでインスタンス化できます。
Parrotは、4つの形式で実行するためのインストゥルメントを受け入れることができます。
- PASM(Parrot Assembly)-Parrotの最低レベル言語
- PIL / PIR(Parrot Intermediate Language / Representation)-PASMの小さな抽象化
- PAST(Parrot Abstract Syntax Tree)
- PBC(Parrot Bytecode)-最初の3つが変換される形式。 仮想マシンによって直接実行された
開発中:
- LevelOne-マシンコードのキャッシュ、トレースベースのJIT(TraceMonkeyで使用)など、最適化の大きな機会を提供する新しい抽象化層
- バイトコードを実行するためのバックエンドとしてのLLVM
PMC
Parrotは、レジスタベースの仮想マシンです(JVMや.NETとは異なります)。 レジスタタイプInteger、Number、およびStringに加えて、PMC(Polymorphic Container)がもう1つあります。 それを通して、配列、ハッシュテーブル、ソケットなどの複雑な構造を想像できます。 PMCは継承できます。 したがって、PMC ClousureとCoroutineを作成でき、PMC Subのすべてのプロパティが含まれます。
Parrotのプログラミング言語の実装
Parrotには、さまざまな完成度のプログラミング言語の実装がかなり多数あります。その中には、Pipp(PHP実装)、Pynie(Python実装)、Cardinal(Ruby実装)、Rakudo(Perl6実装)があります。 完全なリストはここにあります 。 PCT(Parrot Complier Tools)を使用して、独自の実装を作成できます。 文法を記述する最も簡単な方法は、PGE(Parrot Grammar Engine-Perl 6 Regexes implementation)を使用することです。
楽堂
Parrotが最初に作成されたPerl6実装。 積極的に開発されており、実装日はParrotのリリース後2日です(Parrotは毎月第3火曜日にリリースされます)。 テストの約70%が開催され、Perl6の最も有望な実装です。 ここでテストの進行状況を確認できます 。 スケジュールからわかるように、多くの作業が1年にわたって行われました。
Web
Mod_parrotはApache用に開発されたもので、Parrotの言語実装はすべて、100行未満のコードを使用してApacheと連携できます。
ParrotおよびRakudoの詳細については、 parrot.orgおよびrakudo.orgを参照してください 。 Parrot 2.0をリリースする予定で、Perl6 Rakudo仕様に完全に準拠する2010年1月を楽しみにしています。