10 大怪异的编程语言 - 开源中国社区
Float_left Icon_close
10 大怪异的编程语言
oschina 2013年12月17日

10 大怪异的编程语言

oschina oschina 发布于2013年12月17日 收藏 80 评论 56

【腾讯云】0基础建站 网站模板9元起! >>>  

人们都认为编程语言很容易使用和学习。编程语言应该给你提供数据结构让你来解决实际问题,它们的语法也应清晰明了,容易理解且执行速度快,没有任何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) Brainfuck

Brainfuck是晦涩难懂的语言巨星,受到了大批崇拜者的追捧。该语言是出了名的难以编程,仅有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!”程序:

Hello World in Piet

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

 

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   翻译: 伯乐在线 - 敏敏
译文链接: http://blog.jobbole.com/53408/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:10 大怪异的编程语言
分享
评论(56)
最新评论
0
这些语言真是丧心病狂啊
0
黑的好。。这里面只有JavaScript用于生产
0
看了一下我原来是登陆过的,那也发表下个人想法,大家对易语言的各种喷其实很大层度上也不一定就是为了贬低易语言抬高自己(其实也抬高不了他们,试问喷易语言的伙计们有几个能把易语言山寨出来?),好多人只是觉得易语言虽然有创新但力度还不够,没有达到他们心里的预期罢了。这本身就是对我天朝的软件界(当然包括他自己)的不满。不满之余又深感自己无力改变这一局面,因此不免羞愧难当,遂在这里发几句牢骚来鞭策一下我们罢了。。。。
0

引用来自“lxrmido”的评论

引用来自“sam_ai”的评论

引用来自“Frank_mc”的评论

有~English居然没有易语言

易语言也算语言?山寨的VB...(虽然这么说有贬低我用了十年之VB的嫌疑,但是易语言我觉得压根不算语言,我们认识洋文,多少洋人认识汉字?)

语法跟VB不相似,关键字跟VB不相似,文件格式跟VB不相似,一个是编译一个是解析,哪里山寨VB了……

在他看来,某些地方相似就是山寨。
0

引用来自“sam_ai”的评论

昨天我和同事说...只要说国产的东西不好,立刻有人喷。今天他要管我午饭了。

你这种人没一点民族自尊心
你这种人可以为了抬高自己/阿谀奉承而骂自己父母/祖国/朋友
汽车、电视、电脑等都是山寨过来的,你不要用了
vb、vc也是山寨的你不要用了
...
全世界编程语言数千种,为什么易语言不能算进去?
0

引用来自“sam_ai”的评论

昨天我和同事说...只要说国产的东西不好,立刻有人喷。今天他要管我午饭了。

你这样做,他麻麻会不高兴哦!!!
0
昨天我和同事说...只要说国产的东西不好,立刻有人喷。今天他要管我午饭了。
0
哈哈,有人喷!我赢了...果然...
0

引用来自“sam_ai”的评论

引用来自“Frank_mc”的评论

有~English居然没有易语言

易语言也算语言?山寨的VB...(虽然这么说有贬低我用了十年之VB的嫌疑,但是易语言我觉得压根不算语言,我们认识洋文,多少洋人认识汉字?)

我擦 vb不是山寨产品? basic语言一大堆 语法一般都相似
易语言和他们差异很多
真怀疑你十年vb是不是学白痴了
只要是国外的就是。。。
国内的就是。。。
0
第一个 LOL CODE。。是不是拳头公司研发的
0
MD,各个长得跟摩尔电码似得
0
只看到了对 JS 那深深的恶意
0
以现在角度来说,易语言应该算编程语言。

现在有多少新的语言,是用javascript编写的,甚至javascript编写出javascript的编译器。

你去看看用javascript写出来的coffeescript编译器都能让coffeescript成为一门优雅的语言,那么用vb写出来的一个易语言,就是能算一个语言。

至于易语言没人用那是另外一回事
0
没接触过那10个。(为什么要提名js,为什么不提名C++)
0
The Fox
Ring-ding-ding-ding-dingeringedding!
gering-ding-ding-ding-dingeringeding!
gering-ding-ding-ding-dingeringeding!
Wa-pa-pa-pa-pa-pa-pow!
Wa-pa-pa-pa-pa-pa-pow!
Wa-pa-pa-pa-pa-pa-pow!
Hatee-hatee-hatee-ho!
Hatee-hatee-hatee-ho!
Hatee-hatee-hatee-ho!
Joff-tchoff-tchoffo-tchoffo-tchoff!
Tchoff-tchoff-tchoffo-tchoffo-tchoff!
Joff-tchoff-tchoffo-tchoffo-tchoff!
mo-o-o-o-orse? mo-o-o-o-orse? mo-o-o-o-orse?
ho-o-o-o-orse? ho-o-o-o-orse? ho-o-o-o-orse?
Jacha-chacha-chacha-chow!
Chacha-chacha-chacha-chow!
Chacha-chacha-chacha-chow!
Fraka-kaka-kaka-kaka-kow!
Fraka-kaka-kaka-kaka-kow!
Fraka-kaka-kaka-kaka-kow!
A-hee-ahee ha-hee!
A-hee-ahee ha-hee!
A-hee-ahee ha-hee!
A-oo-oo-oo-ooo! Woo-oo-oo-ooo!
0
chicken
0
js V5
0
太虐心了~
0
闲的蛋疼的人开发出来自娱自乐的玩意儿。。。。。所有的语言(包括人类),如果没有使用主体,就只能自言自语了。
0
哈哈
顶部