プログラミング講座(130) クワイン
Small Basic Forum の今年の1月のチャレンジにクワインを作れという問題を出しました。クワインとは自分と同じプログラムを出力するプログラムのことです。新たな回答(10行)を作成し HLQ549 として発行しました。
最短のクワインを書くことが娯楽にもなっているようですが、一方で実用的なクワインも存在し得ます。プログラミング講座(87)で紹介したパーサジェネレータは BNF で表現された構文からそのパーサ(構文解析プログラム)を出力するものですが、BNF の構文を BNF で表現すれば、BNFパーサジェネレータが作れるはずで、うまく作れば BNFパーサジェネレータはクワインにできるはずです。
最終的に JavaScript で書かれた SGF のパーサジェネレータを作りたいのですが、Small Basic のパーサジェネレータからこれを生成しようと考えているところです。
BNF (バッカス・ナウア記法) : 言語の構文を表現する記法
SGF (スマート・ゲーム・フォーマット) : 囲碁などのゲームの棋譜を残すためのファイルフォーマット
| 固定リンク
「Small Basic」カテゴリの記事
- プログラミング講座 (202) 1次元セルオートマトン(2020.09.20)
- プログラミング講座 (201) パラメーター(2020.09.14)
- プログラミング講座 (200) 3次ベジエ曲線(2020.09.14)
- プログラミング講座 (199) スーパー三角関数?(2020.09.02)
- プログラミング講座 (198) スーパー楕円(2020.09.01)
コメント