Parrot をさわってみた
PIR
PIR(Parrot Intermediate Representation)は Parrot の中間レベルのアセンブリ言語。
使える機能としては
- ガーベッジ・コレクション
- コンティニュエーション
- レキシカルバインディング
- オブジェクト指向
- 例外
- テイルコール
- UTF-8 UTF-16 のサポート
などがある。とんでもなく高機能。もっとずっと低レベルの機能しかないと思っていたから意外だった。さらに、いろいろとライブラリも充実してるみたい。 Hash もあったりする。
hello.pir
.sub hello
.local pmc en, jp
$P0 = newclass "EnHello"
$P1 = newclass "JpHello"
en = new "EnHello"
jp = new "JpHello"
en.'hello'("Parrot")
jp.'hello'(utf8:unicode:"おーむちゃん")
.end
.namespace [ "EnHello" ]
.sub 'hello' :method
.param string name
$S0 = "Hello, "
$S0 .= name
$S0 .= "!"
say $S0
.end
.namespace [ "JpHello" ]
.sub 'hello' :method
.param string name
$S0 = utf8:unicode:"こんにちは、"
$S0 .= name
$S0 .= utf8:unicode:"♪"
say $S0
.end
parrot ./hello.pir として実行できる。
0 件のコメント:
コメントを投稿