Whitespace
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Whitespaceは、プログラミング言語のひとつであり、またそれを動作させるインタプリタを指している。WhitespaceはGPLにより配布されている。
従来の言語において、空白に相当する文字(スペース、タブ、言語によっては改行も)は言語における単語の区切りであったが、この言語においては空白文字が言語の全てとなっている(それ以外の文字列はコメント扱いで無視される)。そのため、一見するとプログラムであることすらわからないという珍しい言語である。
目次 |
[編集] 実例
ソースコードに添付されているサンプルコード(hworld.ws)を見てもらいたい。信じられないかもしれないが、このコードをWhitespaceインタプリタに渡すときちんと動作する。
$ ./wspace examples/hworld.ws Hello, world of spaces!
[編集] 文法
IMP(Instruction Modification Parameter)、コマンド、パラメータの3つ組で命令を表現する。
IMPとしては、以下の物がある
- [Space] スタック操作
- [Tab][Space] 演算
- [Tab][Tab] ヒープアクセス
- [LF] フロー制御
- [Tab][LF] I/O
数字は2進法で表現する。[Space]が0で、[Tab]が1で、[LF]が終端記号である。
[編集] スタック操作
- [Space] 数字:数字をスタックに積む
- [LF][Space]:スタックの一番上を複製する
- [Tab][Space] 数字:スタックのn番目をコピーして一番上に積む
- [LF][Tab]:スタックの1番目と2番目を交換する
- [LF][LF]:スタックの一番上の物を捨てる
[編集] 演算
- [Space][Space]:加算
- [Space][Tab]:引き算
- [Space][LF]:かけ算
- [Tab][Space]:割り算
- [Tab][Tab]:剰余