10大怪异的编程语言

来源:互联网 发布:华为的主要业务知乎 编辑:程序博客网 时间:2024/04/25 20:10
本文由 伯乐在线 - 敏敏 翻译自 Tutorialzine。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。

人们都认为编程语言很容易使用和学习。编程语言应该给你提供数据结构让你来解决实际问题,它们的语法也应清晰明了,容易理解且执行速度快,没有任何bug。但有时候编程语言设计者们会创建一些违背这些原则的语言,要么供研究使用要么纯属娱乐。下面是10种最怪异的最不切实际的编程语言。

 

1)LOLCODE

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

1
3
5
7
9
HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
   1
   IZ VAR BIGGER THAN ? KTHX
IM OUTTA YR LOOP
KTHXBYE

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

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

 

2)Glass

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

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

1
3
1" "
2
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表示制表符):

1
3
5
7
9
11
13
15
17
19
21
23
25
27
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!”的程序:

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

学习更多请看 这里

 

7) Befunge

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

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

学习更多请看 这里

 

10) ~English

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

1
"Hello world!"
2
4
 
// And this "fail":
alert((![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);

更多的信息请看这些 StackOverflow上面的问题: 1、 2

结论

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

 

原文链接: Tutorialzine   翻译: 伯乐在线 敏敏
译文链接: http://blog.jobbole.com/53408/
转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]
0 0