比比谁更无聊:Whitespace语言
icon2 Program Impossible | icon4 2007-04-03 16:19| icon36 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com

    我们已经见过了满篇没有一句人话的代码,我们也见过了没有字母数字只有一堆符号的代码。还有比这个更牛B的吗?下面介绍满篇全是空白的代码——Whitespace语言。dd说它的信息学竞赛中的软件工程学系列很无聊,我倒觉得介绍这种疯狂的语言更无聊一些。
    Whitespace语言只接受三种字符:空格、Tab和回车。其余的字符该语言一律忽略。它的语法比前面说过的BrainFuck语言略复杂,但不知比现在我们常用的语言简单到哪儿去了。BrainFuck语言对一个线性表进行操作,而Whitespace语言对一个栈进行操作。它的语法主要可以实现这些操作:

  • 压入一个数字或字母
  • 弹出一个元素
  • 把指定元素的值复制到栈顶
  • 交换栈顶两个元素
  • 对栈顶两个元素进行加减乘除,并把他们替换成运算结果
  • 在代码当前位置做一个标记
  • 跳到一个指定的标记
  • 当栈顶为0时跳到一个指定的标记
  • 当栈顶为负数时跳到一个指定的标记
  • 读入字母或数字到指定的位置
  • 输出栈顶字母或数字



    数字和字母(ASCII)都用二进制表示,空格表示0,Tab表示1。你可以在这里看到详细的教学。

    很多人会问,这个有什么用呢?
    确实没啥用。不过也确实很好玩。根据它的特点怎么也能编出一些不太靠谱儿的“用途”来。比如,和BrainFuck一样,这种语言要写注释就方便了,写的注释根本不需要标识,编译器直接跳过你写的文字信息。还有,我们完全可以在满篇空白的代码中插入一篇文章,从而在看起来完全无关的文章中隐藏一段代码。对于间谍工作来说这种语言帮助很大,因为它可以防止别人把代码打印出来拿走(还记得24的EMP那一集吗?)。

    下面这段代码将在屏幕上打印“Hello World!”。
    
               
                
                      
                
                      
                    
                      
                  
                            
                     
                  
                    
           
                        
                            
                  
                            
                      
                     
                     
                      
                         
                   
                      
           
                         
                            
                        
                     
                            
           
                    
                         
                       
                   
                      
                   
                          
                      
                       
                      
                          
                         
                         
               
                             
    
            

                                                                                                              

                                                                                                                                                            




                                                     
      
    

                                                                                                            

            

                                                                                                                                                                                                     
    
         
      

                                                                                                         

                                                                                                                                                                                                  





    

                                                                            

  
    
                 
             
          
                                                                                                                                                                     


       
      

                                                                         

                                                                                                                                                                  


       
          
        
    

                                                                                                                                                          
            
                
    
      
  
    


做人要厚道
转贴请注明出处

6 条回复

  • 楼层: 沙发 | | dd 说:

    my god...
    我输了。你更无聊。

    回复:这个……赢了也不是很光荣

  • 楼层: 板凳 | | Freeze 说:

    orz...
    这让我想起了看过的一个牛人的键盘,只是01两个键...

    回复:看过那个笑话吗,电脑高手修电脑,用电话上的0和1编了一个Windows出来

  • 楼层: 地毯 | | w4ppsxy 说:

    orz楼下的(both)

  • 楼层: 地板 | | axgle 说:

    这个有点有意思,为什么说是无聊呢?

    回复:因为我们是OIer,这个对于OIer确实没啥用

  • 楼层: 地下室 | | yiyi 说:

    很久以前看过brainfuck,很强的东东.

  • 楼层: 地基 | | rollenc 说:

    这孩子小学数学应该学得不错, 会数数

您也随便说几句吧:

请注意:如果您是第一次在本站发表评论,您的评论需要通过管理员的审核。

您可以在Gravatar设置您的头像。