阅读更多

3顶
0踩

编程语言

转载新闻 10大极具娱乐性的怪异编程语言

2013-12-17 10:50 by 见习编辑 tuhaihe 评论(3) 有12745人浏览
人们都认为编程语言很容易使用和学习。编程语言应该给你提供数据结构让你来解决实际问题,它们的语法也应清晰明了,容易理解且执行速度快,没有任何bug。但有时候编程语言设计者们会创建一些违背这些原则的语言,要么供研究使用要么纯属娱乐。

下面是10种最怪异的最不切实际的编程语言(仅供娱乐)。

1)LOLCODE

很少有编程语言像LOLCODE这样注入了这么多网络时代的成分(译者注:LOLCODE是一种建立在高度缩写的网络英语之上的编程语言)。它由英国兰卡斯特大学研究员 Adam Lindsay于2007年创建,该语言的关键字都是大写的且meme-fied.。你几乎可以想象一个猫会在生产中使用它。

HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
   UP VAR!!1
   VISIBLE VAR
   IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE

与该份列表中的大部分语言一样,LOLCODE没有标准库可言。这意味着你只能使用LOLCODE来读取文件或写入文本到控制台而不能干其他的事。如果你需要功能更强的版本,那么看看因LOLCODE受到启发的LOLPython,它可以让你访问所有Python的强大的功能库。

更多的代码和例子请看维基百科介绍。

2)Glass

Glass是一门深奥的编程语言,由Gregor Richards于2005年发展起来。它将非直观的后缀符号与沉重的面向对象结合起来,需要一个主栈与其面向对象的结构相结合才能进一步玩出花样。据作者所言没有其它的语言像这样执行,因为看起来非常的白痴。

下面是该语言的一个例子,程序输出Fibonacci 序列:

{F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*(_a)(le).?=/(_isle)^\(_n)*(_a)
s.?(_t)f.?(_n)*(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)=(_nlm)
=/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*(_a)a.?=(_nlm)(_n)*
(_a)(le).?=\]}

更多的例子和说明请看这个网页。

3) Brainfu ck

Brainfu ck(提示:为了通过审查,我们在u、c之间添加了空格)是晦涩难懂的语言巨星,受到了大批崇拜者的追捧。该语言是出了名的难以编程,仅有8个简单的命令和一个指令指针。它的设计就是为了挑战和娱乐程序员,而不是为了用于实际用途。它由Urban Müller于1993年创建。

下面是“Hello world!”的例子:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.
<<+++++++++++++++.>.+++.------.--------.>+.>.

4) Chicken

Chicken不仅是语言的名字,也是该语言允许的唯一关键字。关键字重复的次数和换行决定执行的具体操作。下面是一个例子,你能猜出它是干嘛的吗?

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

更多请看 这篇文章

5) Whitespace

Whitespace是一门很出色的编程语言。它仅通过空格、制表符和回车来理解并忽略所有其他字符。这个特性还允许Whitespace程序隐藏在其他语言程序的源代码中,例如JavaScript,Javascript的缩进就是用空格写的。下面是一个例子用以打印“Hello, world!”(S表示单个空格,T表示制表符):

S S S T S S T   S S S 
T   
S S S S S T T   S S T   S T 
T   
S S S S S T T   S T T   S S 
T   
S S S S S T T   S T T   S S 
T   
S S S S S T T   S T T   T   T   
T   
S S S S S T S T T   S S 
T   
S S S S S T S S S S S 
T   
S S S S S T T   T   S T T   T   
T   
S S S S S T T   S T T   T   T   
T   
S S S S S T T   T   S S T   S 
T   
S S S S S T T   S T T   S S 
T   
S S S S S T T   S S T   S S 
T   
S S S S S T S S S S T   
T   
S S

学习更多请看 这里

6) ///

///是一门极简派风格的编程语言,仅包含一个操作—即用/source/replacement/这样的形式进行字符串替换。它由Tanner Swett于2008年发明。该语言的功能十分有限,但是一些聪明的程序员能够将字符串替换转换为完整的工作程序,用以循环和输出数据,下面是一个简单的“Hello, world!”的程序:

/ world! world!/Hello,/ world! world! world!

学习更多请看 这里

7) Befunge

Befunge是一个二维编程语言。你的代码放在一个固定大小的场地,该场地的每一列都能存放代码或者数据,你的程序可以替换任何想要替换的列。解释器从左上列开始从左到右解析。你可以用特殊的方向指令控制解释器的方向。例如,下面是一个无线循环的例子:

>v
^<

而下面这个是“Hello, world!”的程序:

0"!dlroW ,olleH">:#,_@

学习更多请看 这里

8) Piet

Piet编程语言的程序看起来都像抽象画的位图,基本的构建块就是颜色块。它支持20种不同的颜色,有些实现支持的更多。编译器由图像周围的移动“指针”引导,在图像中从一个色块移动到下一个。下面是一个“Hello world!”程序:





学习更多请看该语言的 主页

9) Malbolge

Malbolge语言由Ben Olmstead于1998年发明,以“但丁的地狱”中地狱的第8圈命名。该名字不是随机选取的—该语言设计的初衷就是为了不可能写出有用的编程语言。在创建几年后,有人发现了设计中的漏洞使其能写Malbolge程序。你必须得成为一个密码科学家才能用它写出有意义的程序。下面是Malbolge中看起来像“Hello World!”程序:

('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>

学习更多请看 这里

10) ~English

~English是一门试图模仿自然声音语言的编程语言,其语法非常宽松,使程序员有很大的自由表达空间。但程序员不能自己定义函数而只能使用该语言内置的函数。下面是一个例子程序:

Display "Hello world!" and a newline.
Stop the program.

学习更多请看 这里 ,你可能也对 Shakespeare 感兴趣。

荣誉提名: JavaScript

Javascript是如今最受欢迎的编程语言,但受欢迎带来的副作用就是该语言自身的每处特性,无论该语言多美妙,还是每天给成千上万的程序员带来了bug,这使得JS也列在这里。这里有一个完整的网站列出了Javascript的怪异之处,给你一个例子,下面是两个简短的完全有效的JS片段(你可以在你的控制台上试验一下):

// This prints 10:
alert(++[[]][+[]]+[+[]]);
 
// And this "fail":
alert((![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);

更多的信息请看这些 StackOverflow上面的问题: 12

结论

包含在这份列表中的这些深奥的语言,给大家提供了一种提出和验证新思想的方法。有时候这些想法会影响整个工业界。但是它们中的大部分都是不切实际的且深奥、范围狭窄,你刚刚只学了其中的10种,但实际上有几百种

原文:Tutorialzine / 编译:伯乐在线 – 敏敏
  • 大小: 15.7 KB
3
0
评论 共 3 条 请登录后发表评论
3 楼 josico 2013-12-21 18:04
js也黑。。。
2 楼 yixiandave 2013-12-17 21:18
budao 写道
没有大名鼎鼎的《草-泥-马》语言也好意思拿出来啊

+1
1 楼 budao 2013-12-17 13:20
没有大名鼎鼎的《草-泥-马》语言也好意思拿出来啊

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • html是一种编译型的编程语言,6种奇葩的编程语言(用牛叫和鸡来编译)

    我们常常只专注一种编程语言的易用性和编译速度。因为编程语言是为了让程序员来创造世界、解决实际问题的。而下面介绍6中怪异的不合实际的语言,只为博取程序员一乐~Brainfuck(brain=聪明,智慧;f**k=你懂)...

  • 哪种编程语言好找工作_哪种编程语言可以工作? 为了周末?

    哪种编程语言好找工作 随着新的,有趣的人们为我们写作,并分享他们在开源技术方面的专业知识和经验的乐趣,我们的作家社区每个月都在增长。 因此,它们充满了令人着迷的信息也就不足为奇了。 只是在问发布它的正确...

  • 编程的郁金香之热

    过去几年来,科技行业有强烈的愿景去教会所有人编程。 "所有学校的每一个学生都应该有机会学习计算机科学"  ------code.org 每个人都应该有学习计算机科学的机会。对计算的理解可以改变你

  • 1 : 2 : 10!张小龙神预言视频号

    认真创作内容门槛极高(比公众号高多了),回报周期极长,长期回报的事情很容易劝退绝大部分人。 这两者之间存在巨大的鸿沟,微信如果能把这个鸿沟给填上那就太牛逼了。 在很长一段时间内,这个舞台估计还主要是...

  • 吴恩达:这些 AI 大事件让我无法忘怀...

    点击⬆️方“逆锋起笔”,公众号回复编程资源 领取大佬们推荐的学习资料 作者| 吴恩达编译 |陈大鑫、贝爽编辑 | 青暮转自 | AI科技评论日前,吴恩达在圣诞节之际回顾了2020年...

  • 乘风破浪的迁移学习!四字成语讲明白这个大热研究方向

    导读:现在迁移学习大热,它红,是有它的道理的。什么是迁移学习?本文用最通俗易懂的语言为你讲解。作者:木羊同学来源:大数据DT(ID:hzdashuju)迁移学习现在是很热的一个前沿研究方...

  • 吴恩达:2020 年,这些 AI 大事件让我无法忘怀...

    iGPT预示着在图像和文字上训练的模型(至少在OpenAI的工作中),它可能比2020年的大型语言模型更聪明、更怪异。 更多信息:NLP特刊包括有关如何消除偏见,以及对NLP先驱Noam Shazeer的独家采访。 ...

  • 怎么深入学习计算机,深入提高编程能力

    笔者最近在学习计算机的过程中,...碰巧在知乎上有个和我现在情况很契合的问题:你的编程能力从什么时候开始突飞猛进? 下面我就以这个问题中的回答来审视自身,寻找深入的方向和方法。 回答1 阶段一:啥也不会,抄代

  • Java基础第一讲:Java的故事和Java编程环境搭建

    { Android学习指南 } 适于自学的ANDORID学习指南,基于ANDROID 2.2、2.3.3及3.0版本讲解 ...Java基础第一讲:Java的故事和Java编程环境搭建 13SEP 一、《Java基础讲座》前言: 学习Andro

  • 谈谈「心流」:如何在学习中体验快乐

    我开始做这个小产品时很快就进入了心流状态,熬夜研究了好几天才把插件做出来,不过丝毫不感觉疲惫,反而还很兴奋,最关键的是基本掌握了一门新的编程语言,并且插件给我的读者带来很大的便利。 好了,本文已经够长...

  • 从AI作画到AI做视频,这一跳改变了什么?

    如果观察的视角从企业转向个体的话,大部分个人消费者也可以应用AI生成视频来娱乐。就像AI作图一般,AI生成的视频也会成为新的社交媒体话题。网友可以通过输入文本指令生成各种各样的视频,交流创意。我们或许会从...

  • 回顾6年深度学习算法实践和演进

    高度可控的Neural Style修改技术可以极大的提高大家的PS效率。记得当年在旧金山还办过几个AI艺术展。 既然聊到这,不得不提一下GAN,GAN的作用现在看来是非常重要。当年也曾经一度冲到CVPR的最热门Topic。各种花式...

  • 一文梳理深度学习算法演进

    高度可控的Neural Style修改技术可以极大的提高大家的PS效率。记得当年在旧金山还办过几个AI艺术展。 既然聊到这,不得不提一下GAN,GAN的作用现在看来是非常重要。当年也曾经一度冲到CVPR的最热门Topic。各种花式...

  • 计算机视觉是否已经进入瓶颈期?

    图像检索(以图搜图、以文搜图)其实本质还是图像理解,而且算是一个已经比较成熟的区域了,例如搜索引擎、相似度推荐等,10年左右开始技术飞跃就困难重重了。现在这一块很少有Lab在做了,慎入。 Robotics(计算机...

  • 元宇宙长什么样?推荐你看这 6 部影视与文学作品

    小说中的主要人物有牛顿、莱布尼茨(德国著名的哲学家和数学家)等曾为科学做出过巨大贡献的人物,他们和斯蒂芬森笔下的那些性格怪异但才智超人的虚构人物一道推动着小说情节的发展。 斯蒂芬森在书中对“虚拟+现实”...

  • 韩国最新「美女元宇宙」引爆Reddit!最强换脸神器美女自拍一键转漫画

    与现有的手动着色不同,AI着色只需几次触摸即可完成全图着色,能够极大提升网络漫画创作者的着色时间,从而提高创作效率。 Webtoon AI Painter的开发历时3年,主要技术还是深度学习模型,使用了大约 30 万个数据来...

  • 无死角窥探的焦虑:AI如何反击隐私侵占?

    虽然AI技术的中立性是共识,但背后的大公司、黑客的应用都是被利益所驱动,一旦这些信息不被合理地应用,就会造成各类影响严重的事件发生。 我们知道视听生活是现代人类娱乐、生活的必需品,无人能够离开嵌入摄像头...

  • Unity Terrain Adjust

    核心特性:地形调整的灵活性 地形高度与坡度调整: 利用Terrain Adjust,设计师可以根据需要轻松调整地形的高度和坡度,创造出更加自然和真实的环境。 光滑边缘处理: 工具提供了边缘平滑功能,确保地形调整后的过渡自然,避免了突兀的高低变化。 自定义画笔设置: 可调整画笔大小、衰减、间距等参数,让设计师能够精确控制地形的每一个细节。 应用场景:多样化的地形创作 道路与岩石融合: 利用Terrain Adjust,可以将道路和岩石自然地混合到地形中,为游戏世界增添更多细节。 坡道创建: 工具还支持创建坡道,为游戏中的车辆或其他移动元素提供更加丰富的地形变化。 技术细节:轻量级与高效 编辑器专用: 作为编辑器的专用工具,Terrain Adjust不会对项目造成混乱,保持了工作环境的整洁。 Collider需求: 为了使用Terrain Adjust,目标对象需要有Collider组件,以确保地形调整的准确性。 Terrain Adjust工具以其轻量级设计和强大的地形调整功能,成为了Unity环境设计师的得力助手。它不仅提高了工作效率,还为创造更加丰富和真实的游戏世界提供了可能。

  • 基于 Shell 的驾照理论考试练习软件的设计与实现

    【作品名称】:基于 Shell 的驾照理论考试练习软件的设计与实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 测试题数据存储设计 # 测试题目文件夹 # 每个测试题作为一个目录,目录下面必须有 content.txt、options.txt 和 answer.txt 三个文件 # content.txt 文件内容为题目内容 # options.txt 文件内容为题目选项,每个选项占一行 # answer.txt 文件内容为正确答案 export tests_folder='./tests' 复习错题集自动删除答对的错题 export failed_list_file='failed.txt' # 错题集文件 sed -i '' "/$test/d" $failed_list_file

  • PiP-Tool.msi

    PiP-Tool

Global site tag (gtag.js) - Google Analytics