單詞化日記 留言簿 主頁

另一种神奇的Whitespace语言

Whitespace是由Durham大学的Wdwin Brady和Chris Morris发明的,于2003年4月1日发布(和愚人节有关?)。和大多数语言通常忽略空白字符不同,Whitespace解释器忽略一切非空白字符。空格、Tab和换行是仅有的语法元素。这就带来了一个有趣的事实:一个Whitespace程序可以完美地嵌入进一个文章之中。
Whitespace是一种命令式堆栈型语言,程序运行在一个有一个栈(Stack)和一个堆(Heap)的虚拟机之上。编程者可以将任意大小的整数压入栈中(目前还没有实现对浮点数的操作)。堆常用作存储变量和数据结构的固定存储空间,用户可以直接访问。 数字和字母(ASCII)都用二进制表示,空格表示0,Tab表示1。你可以在这里看到详细的教学。
很多人会问,这个有什么用呢?
确实没啥用。不过也确实很好玩。根据它的特点怎么也能编出一些不太靠谱儿的“用途”来。比如,和BrainFuck一样,这种语言要写注释就方便了,写的注释根本不需要标识,编译器直接跳过你写的文字信息。还有,我们完全可以在满篇空白的代码中插入一篇文章,从而在看起来完全无关的文章中隐藏一段代码。对于间谍工作来说这种语言帮助很大,因为它可以防止别人把代码打印出来拿走 -_-|||
Whitespace已经被证明是图灵完备的。证明可以在主页的邮件列表中找到,其晦涩程度之大,目前还没有人对证明作出评论。下面是Hello World程序:

 
Whitespace  
 
 

欢迎订阅我的Blog,如果有困难,可以参考我的RSS订阅帮助

Leave a Reply

Additional comments powered by BackType


  • Google Adsense

  • 訂閱我

  • G-Readers

  • My Links