オウム中間表現
Parrot中間表現(PIR )は、以前は中間コード(IMC)と呼ばれていましたが、Parrot仮想マシン用の2つのアセンブリ言語のうちの1つです。もう1つはParrotアセンブリ言語(PASM)です。PASMと比較すると、PIRはわずかに高い抽象化レイヤーに存在し、一時レジスタと名前付きレジスタを提供することで、コード生成を簡素化します。
Parrot はまだ進化を続けていますが、現在ではさまざまな用途で使用されており、何度かリリースされています。
概要
PIR は、プログラマが Parrotバイトコード内の特定の冗長性を無視し、呼び出し規約などの Parrot の複雑さに準拠したコードを迅速に記述できるようにする一連の抽象化を提供します。
抽象化
PIRは、ある程度の型抽象化と多態性を提供します。例えば、" "演算子は、、または両方+と併用できます。intnum
.ローカル 整数 a .ローカル 数値 b a = 1 b = 1.1 .ローカル 数値 c c = a + b呼び出し規約
Parrot の呼び出し規約は複雑ですが、PIR ディレクティブを使用することでその複雑さをすべて隠すことができます。
.sub foo .param int a .param int b .local int tmp tmp = a + b .return ( tmp ) 。終わり「 」で始まる各ディレクティブは、.必要な Parrot バイトコードに展開されますが、基本的な Parrot 操作を直接表すものではありません。
例
PIRのHello Worldプログラムは
.sub hello : main print " Hello world!\n " .end プログラムをhello.pirとして保存すると、次のコマンドでコンパイルして実行できます。parrot hello.pir
外部リンク
- PIRの書き方
- PIRの例