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

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

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



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

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

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

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::