Parrot
Parrotはコンパイラ作成ツールセットを提供している。再帰下降構文解析や演算子順位パーサーを表現できるハイブリッドのParser Grammar Engine (PGE) を備えており、この2つを同じ文法で自由に遷移できる。
PGEはTree Grammar Engine (TGE) に解析結果を与え、TGE は最適化のため、究極的にはコード生成のために、PGE が作成した解析構文木を変換する。
予定されているRakuのサブセットに加えて、多数のプログラム言語がParrot assembly languageにコンパイルできるようにすることが次々に計画されている。 APL、BASIC、Befunge、Brainfuck、Cola、Forth、Jako、LISP、m4、Miniperl、Parakeet、OpenComal、PHP、Plot、Pheme、Punie、 Python、Ruby、Scheme、Span、Tcl(別名partcl)、URM、YAL、Zork Z-codeなどである。しかし、これらの言語の実装のほとんどは、まだ不完全であったり、実験的であったり、さらに放棄されてしまったりしている。
Parrot はレジスタベースの仮想機械(仮想マシン)で、動的プログラミング言語を効率的に動作させるために開発された、C言語で書かれたソフトウェアである。Parrotは他の多くの仮想マシンと異なり、型情報を扱うことができる。Parrot アセンブリ言語とPIR(Parrot中間言語)をParrotのバイトコードに変換し、実行することができる。
ParrotプロジェクトはPerlのコミュニティにより開始され、Parrotはオープンソースとフリーソフトウェアのコミュニティの協力により開発されている。結果として、Parrotはライセンスの互換性 (Artistic License 2.0)、非常に広い範囲のプラットフォーム互換性、現代的なほとんどのプロセッサアーキテクチャに対する互換性、実行速度、サイズ(プラットフォームによるが 700K 程度)、Perlおよび全てではないがほとんどの現代的な動的プログラミング言語の様々な要求に対して柔軟に対応できること、に焦点を置いている。また、イントロスペクション、デバッガの機能、コンパイル時のセマンティックの調節 (semantic modulation) にも焦点を置いている。