Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~にて紹介した本の中から、「Whitespace」言語のJava実装ができました。
本来 "whitespace" とは「空白」や「余白」を意味する英単語である。多くの一般的なプログラミング言語では空白に相当する文字(スペース、タブ、言語によっては改行も)は単語間の区切りとして使われている。しかし、言語 Whitespace においてはプログラムは空白文字だけで構成される(それ以外の文字列はコメント扱いで無視される)。そのため、一見するとプログラムであることすらわからないという珍しい言語である。
ダウンロード
実装の都合上、結構な数のクラスを作ってしまったので、jarファイルにまとめてアップしてあります。[ バイナリ / ソース ] よりそれぞれダウンロードしてください。
また、前回、前々回に実装したHQ9+とBrainf*ckについても同梱してあります。
コンパイル
Whitespace言語で書かれたソースファイルをコンパイル(?)して、JavaオブジェクトのList
に変換し、ファイルに保存します。$ java -cp esoteric-0.0.1.jar st.happy_camper.esoteric.whitespace.WhitespaceCompiler whitespace.ws
実行
コンパイル(?)したファイルを読み込み実行します。$ java -cp esoteric-0.0.1.jar st.happy_camper.esoteric.whitespace.Whitespace whitespace.wsc
サンプル
サンプルコードがダウンロードできます。また、こちらにもサンプルがあります。
適当なファイル名で保存して、コンパイル~実行してみてください。
Whitespace言語のソースを見るとすごいことになってますね。
面白い!!