Loading article…
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の例
