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

  1. ぎゃーw


    さて私は誰でしょうw

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

    返信削除