2009/07/26

Parrot をさわってみた

http://www.parrot.org/

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 件のコメント: