RSS

Parrot (PASM) を試す

    付与されたタグ:
  • Perl

Perl6のVMになるParrotで少しプログラムを組んでみた。一番低レベルのPASMを実験。少し書いたら力尽きた。やはりこんなものは人の手で書くのは大変だ。

  set I1, 10
  set I2, I1
  set S1, "\n"
  set S2, ", "
REDO:
  print I1
  print S2
  print I2
  print S1
  dec I1
  lt I1,1,END
  mul I2, I2, I1
  branch REDO
END:
  print I1
  print S2
  print I2
  print S1
  end

10の階乗を求めるサンプル。これをfact.pasmで保存して以下のように実行する。

$ parrot fact.pasm 
10, 10
9, 90
8, 720
7, 5040
6, 30240
5, 151200
4, 604800
3, 1814400
2, 3628800
1, 3628800
0, 3628800

まあ、大変だね