« ブログのデザインを変更しました | トップページ | プログラミング講座(131) Small Basic 日本語コミュニティ »

2013/08/14

プログラミング講座(130) クワイン

Small Basic Forum の今年の1月のチャレンジにクワインを作れという問題を出しました。クワインとは自分と同じプログラムを出力するプログラムのことです。新たな回答(10行)を作成し HLQ549 として発行しました。

最短のクワインを書くことが娯楽にもなっているようですが、一方で実用的なクワインも存在し得ます。プログラミング講座(87)で紹介したパーサジェネレータは BNF で表現された構文からそのパーサ(構文解析プログラム)を出力するものですが、BNF の構文を BNF で表現すれば、BNFパーサジェネレータが作れるはずで、うまく作れば BNFパーサジェネレータはクワインにできるはずです。

最終的に JavaScript で書かれた SGF のパーサジェネレータを作りたいのですが、Small Basic のパーサジェネレータからこれを生成しようと考えているところです。

BNF (バッカス・ナウア記法) : 言語の構文を表現する記法
SGF (スマート・ゲーム・フォーマット) : 囲碁などのゲームの棋譜を残すためのファイルフォーマット

|

« ブログのデザインを変更しました | トップページ | プログラミング講座(131) Small Basic 日本語コミュニティ »

Small Basic」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: プログラミング講座(130) クワイン:

« ブログのデザインを変更しました | トップページ | プログラミング講座(131) Small Basic 日本語コミュニティ »