ニコニコ大百科モバイル

7/2(月)よりスマホまたはPCでアクセスした場合、各デバイス向けのサイトへ自動で転送致します


Whitespace


ヨミ: ホワイトスペース
掲示板をミル!
10カキコ!

Whitespaceとは、難解であるとされるプログラミング言語の一つである。
どう見ても実用的ではないネタ


概要


Whitespaceは、空白という意味である。その訳の通り、このプログラミング言語空白あるいは空白に相当する文字空白文字、タブ、改行)しか扱わない。したがって、プログラムソースは一見すると真っ白であり、非常に解読が困難である。なお、その他の文字はすべてコメント扱いされる。


構文


IMP(命)、コマンド、パラメータで構成される。

最初の文字は命を表し、Space(空白)はスタックの操作、Tab(タブ)&Spaceは演算、Tab&TabはヒープアクセスLF(改行)はフロー制御、Tab&LFは入を表す。

スタックの操作の場合、次の文字SpaceであればLFが来るまでSpace=0、Tab=1とする2進数入と判断され、スタックに値を積む。次の文字LF&LFであれば一番上のスタック削除する。

それ以外の命・演算についてはwikipedia[外部]を参照。


プログラム例


プログラムの基本はやっぱりHello worldを出するプログラムなのだが・・・。

                   
































 

もちろん真っ白なので読めません・・・・。
というかニコニコ大百科の記事じゃ空白・タブ文字が除去されるから再現できないだろ…。

 


プログラム説明


上記の空白文字だらけのプログラムを、SpaceをS、TabをT、LF改行と置き換えたプログラムを以下に表す。
すると、Space&Spaceスタックに値を入れ、それを文字として出するだけであると分かる。

S-S-STSSTSSS    // "H"(01001000)2=72スタックに入れる
T               // スタックに入れた値を文字として出
S-S-SSSTTSSTST // "e"(0001100101)2=101スタックに入れる
T               // 上記と同じ
S-S-SSSTTSTTSS // "l"(0001101100)2=108スタックに入れる
T
S-S-SSSTTSTTSS
T
S-S-SSSTTSTTTT // "o"(0001101111)2=111をスタックに入れる
T
S-S-SSSTSTTSS  // "," 以下説明省略
T
S-S-SSSTSSSSS  // " "
T
S-S-SSSTTTSTTT  // "w"
T
S-S-SSSTTSTTTT  // "o"
T
S-S-SSSTTTSSTS  // "r"
T
S-S-SSSTTSTTSS  // "l"
T
S-S-SSSTTSSTSS  // "d"
T
S-S-SSSTSSSST   // "!"
T
S-S-SSSTSTS     // "改行"
T
S-S-      // "終了"

なお、分かりやすくするためにIMPコマンド、パラメータを"-"の記号で分けている。
何故72が"H"になるのかというと、"H"の文字コード72だからである。

 


関連動画



■sm5016279[ニコ動]


関連リンク



関連項目



最終更新日: 10/07/31 21:14
タグ検索 パソコン版を見る


[0]TOP
ニコニコ動画モバイル
運営元:ドワンゴ