beatmania IIDX 19 Lincleロケテスト実施記念としてプログラミング言語「Amuro」を作ってみることにしました。
言語仕様
名前から想像できるとおり、命令は
- A
- AA
- F
- 冥
の
- (N)
- (H)
- (A)
の組み合わせのみです。
さらに、(SPN)(DPA)などSP、DPの修飾子をつけることで並列実行を行うことができます。え?スレッド間通信?そんなのあるわけないじゃん
命令の内訳
とかはこれから考える。おそらくBrainf*ck互換かそれっぽいのになると思います。
ぶっちゃけ話
本当はA、F、冥だけで書きたかったんですが、AとAAの区別の問題を避けたかったのと、ぶっちゃければAっていう言語がaとAだけで十分に表現力出しているからAとFだけでも大丈夫といえば大丈夫だけどそれじゃあ汚いということでIIDXの譜面表記っぽくなるように(N)(H)(A)をつけて命令数増やしつつ区別が楽になるようにしよう!という妥協案を採用することに。
実装
徐々につくっていきます。ぶっちゃけそんな難しくないしすぐにできると思いますが中の人のやる気次第。
今のところパーサのための状態遷移図を書いたところ。yacc使えとか言わない。
多分Rubyで実装してHello Worldを書いてみるところまでやって終わりです。