2009/07/26

Parrot で eval もできる

http://docs.parrot.org/parrot/latest/html/docs/book/pir/ch06_subroutines.pod.html

Evaluating a Code String

.sub main
.local pmc compiler, generated1, generated2
.local string source1, source2
compiler = compreg "PIR"
source1 = ".sub foo\n$S1 = 'in eval 1'\nsay $S1\n.end"
source2 = ".sub foo\n$S1 = 'in eval 2'\nsay $S1\n.end"
generated1 = compiler(source1)
generated2 = compiler(source2)
generated1() # in eval 1
generated2() # in eval 2
foo() # in eval 2
$P1 = generated1
$P1() # in eval 1
.end

Parrot はとことん言語実装のための VM だな。

2 件のコメント:

匿名 さんのコメント...

ぎゃーw


さて私は誰でしょうw

アヘン窟をのぞいてしまった。
なんまんだぶなんまんだぶ。

Yoshinori Tahara さんのコメント...

あらわれたな、クポ!