Quine-relay Advent calendar Day -18: Ook!

ref: https://github.com/mame/quine-relay

マイナス 18 日目の今日は、Ook! を追加しました (58 言語目、コミット) 。Ook! はオランウータン向けの難解プログラミング言語という、たぶん世界初の Brainfuck 置換系言語です。Ook. と Ook? と Ook! の 3 種類のトークンだけで Brainfuck プログラムをエンコードします。作者はたぶん世界一有名な esolang 作家の David Morgan-Mar 。ちなみに Piet も同じ人です。

これの組み込みは予想外に大変でした。直前の OctaveOok! プログラムを生成するのですが、単純にやると生成される Ook! プログラムが数十 MB とかになってしまって嫌なので、複数のセルを使って多少短いプログラムを生成する必要があります。しかし一方で、Octave の特性上、一文字ずつのループを回すととんでもなく遅いので、組込みの配列指向の操作をうまく使って実装しました。なかなか興味深い経験でした。