我们已经见过了满篇没有一句人话的代码,我们也见过了没有字母数字只有一堆符号的代码。还有比这个更牛B的吗?下面介绍满篇全是空白的代码——Whitespace语言。dd说它的信息学竞赛中的软件工程学系列很无聊,我倒觉得介绍这种疯狂的语言更无聊一些。
Whitespace语言只接受三种字符:空格、Tab和回车。其余的字符该语言一律忽略。它的语法比前面说过的BrainFuck语言略复杂,但不知比现在我们常用的语言简单到哪儿去了。BrainFuck语言对一个线性表进行操作,而Whitespace语言对一个栈进行操作。它的语法主要可以实现这些操作:
- 压入一个数字或字母
- 弹出一个元素
- 把指定元素的值复制到栈顶
- 交换栈顶两个元素
- 对栈顶两个元素进行加减乘除,并把他们替换成运算结果
- 在代码当前位置做一个标记
- 跳到一个指定的标记
- 当栈顶为0时跳到一个指定的标记
- 当栈顶为负数时跳到一个指定的标记
- 读入字母或数字到指定的位置
- 输出栈顶字母或数字
数字和字母(ASCII)都用二进制表示,空格表示0,Tab表示1。你可以在这里看到详细的教学。
很多人会问,这个有什么用呢?
确实没啥用。不过也确实很好玩。根据它的特点怎么也能编出一些不太靠谱儿的“用途”来。比如,和BrainFuck一样,这种语言要写注释就方便了,写的注释根本不需要标识,编译器直接跳过你写的文字信息。还有,我们完全可以在满篇空白的代码中插入一篇文章,从而在看起来完全无关的文章中隐藏一段代码。对于间谍工作来说这种语言帮助很大,因为它可以防止别人把代码打印出来拿走(还记得24的EMP那一集吗?)。
下面这段代码将在屏幕上打印“Hello World!”。
60;
0;
做人要厚道
转贴请注明出处
my god…
我输了。你更无聊。
回复:这个……赢了也不是很光荣
orz…
这让我想起了看过的一个牛人的键盘,只是01两个键…
回复:看过那个笑话吗,电脑高手修电脑,用电话上的0和1编了一个Windows出来
orz楼下的(both)
这个有点有意思,为什么说是无聊呢?
回复:因为我们是OIer,这个对于OIer确实没啥用
很久以前看过brainfuck,很强的东东.
这孩子小学数学应该学得不错, 会数数
http://code.google.com/p/grass-mud-horse/
二八,快去去比比谁更无聊!!真是越来越热爱山寨了……
很高兴的看到大牛栽倒在更无聊的山寨人手中……
代码框里tab被转成空格了……
然后我试着从网页源代码中把两者分开了
但是它WA了
http://ideone.com/SzwdX
看起来还是01编写更牛X一些····毕竟满屏幕的空白只能让别人以为你刚刚看完XX片··
哈哈哈哈,我的编辑器 空格显示半透明的.,Tab显示半透明的-,简直就是莫尔斯编码啊!
可以
可以可以,发现了一个无聊的土著。