この記事はAltplus Advent Calendar 2017の23日目のエントリです。
お疲れ様です。id:kazuha-yamahataです。
今回ですがせっかくのクリスマス前夜なので、それに関連することをやりたいと思います。
クリスマスといえば雪、
雪といえば白、
白は英語でwhite、
whiteといえば・・・Whitespace!!
そんなわけで今回はWhitespaceの紹介をしようかなと思います。
※Whitespace (本家: http://compsoc.dur.ac.uk/whitespace/index.php)
今回は実際にコードを見てもらった方が早いと思いますのでコードの説明はいたしません。
そんなわけで早速始めていきましょう。
Whitespaceコードを実行するためには、専用のコンパイラが必要になります。
今回はWeb上でコードをコンパイルし実行することができるIdeone(http://ideone.com)で実行の確認をします。
こちらにサンプルコードを用意いたしました。
・・・はいこれがコードとなります。
これを『ideone it!』ボタンを押すことで実行すると。
そうです!!!
こちらの言語はメリークリスマスをハローワールドに変換してくれる言語なんです!!!
・・・すみません嘘です・・・実際にはこんな感じになってます。
以下Whitespaceに関してとなります。
Whitespaceに関して:
Whitespaceは難解プログラミングの一種となります。難解プログラミング言語は読解が困難なように設計された言語となります。
この言語は[space] [tab] [LF]によって構成されています。つまり何も見えません。
[space]が0 [tab]が1 [LF]が終端記号の役割を持っています。
この[space] [tab] [LF]組み合わせで、スタック操作・演算・ヒープアクセス・フロー制御・I/Oを表現してコードを書いていきます。
このWhitespaceですが、チューリング完全となるため、やろうと思えば何でもできます。やろうと思えば・・・
そんなわけでこのWhitespaceですが、[space] [tab] [LF]でコードが構成されています。
・・・とすると先ほどコード中にあったメリークリスマスはどうなるの?
という疑問があるかと思いますが、このWhitespaceでは白いもの以外は全てコメント扱いとなります。
よって、あのメリークリスマスもコメントとなっていたのです!
こんな感じで誰にも気づかれることなく文章にコードを仕込むこともできますので、ぜひ試してみてください!
はい、そんなわけで今回はwhitespaceの紹介でした!
他にも面白いプログラミング言語がたくさんありますので是非触ってみてください!