brainf*ck.io
時代は DSL ですよね。 K.INABAさんとこを参考にしました (http://www.kmonos.net/alang/etc/brainfuck.php)
vm := List clone for(a, 0, 100, vm push(0)) index := 0 through := method(s, m, if (m, a := m argAt(0) if (a, s doMessage(a)) ) ) setSlot(">", method( index = index + 1 through(sender, thisMessage) )) setSlot("<", method( index = index - 1 through(sender, thisMessage) )) setSlot("+", method( vm atPut(index, vm at(index) + 1) through(sender, thisMessage) )) setSlot("-", method( vm atPut(index, vm at(index) - 1) through(sender, thisMessage) )) setSlot(".", method( write(vm at(index) asCharacter) through(sender, thisMessage) )) // i cannot implement "," setSlot("'", method( vm atPut(index, File standardInput readBufferOfLength(1) at(0)) through(sender, thisMessage) )) setSlot("squareBrackets", method( while (vm at(index) != 0, sender doMessage(thisMessage argAt(0)) ) self )) // hello world > + + + + + + + + + [ < + + + + + + + + > - ] < . > + + + + + + + \ [ < + + + + > - ] < + . + + + + + + + . . + + + . [ - ] > + + + + + + + + \ [ < + + + + > - ] < . > + + + + + + + + + + + [ < + + + + + > - ] \ < . > + + + + + + + + [ < + + + > - ] < . + + + . \ - - - - - - . - - - - - - - - . [ - ] > + + + + + + + + \ [ < + + + + > - ] < + . [ - ] + + + + + + + + + + . // echo + [ > ' . < ]