10大怪異的編程語言
人們都認(rèn)為編程語言很容易使用和學(xué)習(xí)。編程語言應(yīng)該給你提供數(shù)據(jù)結(jié)構(gòu)讓你來解決實(shí)際問題,它們的語法也應(yīng)清晰明了,容易理解且執(zhí)行速度快,沒有任何 bug。但有時(shí)候編程語言設(shè)計(jì)者們會(huì)創(chuàng)建一些違背這些原則的語言,要么供研究使用要么純屬娛樂。下面是10種最怪異的最不切實(shí)際的編程語言。
1)LOLCODE
很少有編程語言像LOLCODE這樣注入了這么多網(wǎng)絡(luò)時(shí)代的成分(譯者注:LOLCODE是一種建立在高度縮寫的網(wǎng)絡(luò)英語之上的編程語言)。它由英國蘭卡斯特大學(xué)研究員 Adam Lindsay于2007年創(chuàng)建,該語言的關(guān)鍵字都是大寫的且meme-fied.。你幾乎可以想象一個(gè)貓?jiān)谏a(chǎn)中使用它。
- 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沒有標(biāo)準(zhǔn)庫可言。這意味著你只能使用LOLCODE來讀取文件或?qū)懭胛谋镜娇刂婆_而不能干其他的事。如果你需要功能更強(qiáng)的版本,那么看看因LOLCODE受到啟發(fā)的LOLPython,它可以讓你訪問所有Python的強(qiáng)大的功能庫。
更多的代碼和例子請看維基百科介紹。
2)Glass
Glass是一門深?yuàn)W的編程語言,由Gregor Richards于2005年發(fā)展起來。它將非直觀的后綴符號與沉重的面向?qū)ο蠼Y(jié)合起來,需要一個(gè)主棧與其面向?qū)ο蟮慕Y(jié)構(gòu)相結(jié)合才能進(jìn)一步玩出花樣。據(jù)作者所言沒有其它的語言像這樣執(zhí)行,因?yàn)榭雌饋矸浅5陌装V。
下面是該語言的一個(gè)例子,程序輸出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).?=\]}
更多的例子和說明請看這個(gè)網(wǎng)頁。
3) Brainfuck
Brainfuck是晦澀難懂的語言巨星,受到了大批崇拜者的追捧。該語言是出了名的難以編程,僅有8個(gè)簡單的命令和一個(gè)指令指針。它的設(shè)計(jì)就是為了挑戰(zhàn)和娛樂程序員,而不是為了用于實(shí)際用途。它由Urban Müller于1993年創(chuàng)建。
下面是“Hello world!”的例子:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++. <<+++++++++++++++.>.+++.------.--------.>+.>.
更多請看 這里
4) Chicken
Chicken不僅是語言的名字,也是該語言允許的唯一關(guān)鍵字。關(guān)鍵字重復(fù)的次數(shù)和換行決定執(zhí)行的具體操作。下面是一個(gè)例子,你能猜出它是干嘛的嗎?
- chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
- chicken chicken chicken chicken chicken chicken
更多請看這篇文章
5) Whitespace
Whitespace是一門很出色的編程語言。它僅通過空格、制表符和回車來理解并忽略所有其他字符。這個(gè)特性還允許Whitespace程序隱藏 在其他語言程序的源代碼中,例如JavaScript,Javascript的縮進(jìn)就是用空格寫的。下面是一個(gè)例子用以打印“Hello, world!”(S表示單個(gè)空格,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
學(xué)習(xí)更多請看這里
6) ///
///是一門極簡派風(fēng)格的編程語言,僅包含一個(gè)操作—即用/source/replacement/這樣的形式進(jìn)行字符串替換。它由Tanner Swett于2008年發(fā)明。該語言的功能十分有限,但是一些聰明的程序員能夠?qū)⒆址鎿Q轉(zhuǎn)換為完整的工作程序,用以循環(huán)和輸出數(shù)據(jù),下面是一個(gè)簡單的 “Hello, world!”的程序:
- / world! world!/Hello,/ world! world! world!
學(xué)習(xí)更多請看這里
7) Befunge
Befunge是一個(gè)二維編程語言。你的代碼放在一個(gè)固定大小的場地,該場地的每一列都能存放代碼或者數(shù)據(jù),你的程序可以替換任何想要替換的列。解釋器從左上列開始從左到右解析。你可以用特殊的方向指令控制解釋器的方向。例如,下面是一個(gè)無線循環(huán)的例子:
- >v
- ^<
而下面這個(gè)是“Hello, world!”的程序:
- 0"!dlroW ,olleH">:#,_@
學(xué)習(xí)更多請看這里
8) Piet
Piet編程語言的程序看起來都像抽象畫的位圖,基本的構(gòu)建塊就是顏色塊。它支持20種不同的顏色,有些實(shí)現(xiàn)支持的更多。編譯器由圖像周圍的移動(dòng)“指針”引導(dǎo),在圖像中從一個(gè)色塊移動(dòng)到下一個(gè)。下面是一個(gè)“Hello world!”程序:
Hello World in Piet
學(xué)習(xí)更多請看該語言的主頁
9) Malbolge
Malbolge語言由Ben Olmstead于1998年發(fā)明,以“但丁的地獄”中地獄的第8圈命名。該名字不是隨機(jī)選取的—該語言設(shè)計(jì)的初衷就是為了不可能寫出有用的編程語言。在 創(chuàng)建幾年后,有人發(fā)現(xiàn)了設(shè)計(jì)中的漏洞使其能寫Malbolge程序。你必須得成為一個(gè)密碼科學(xué)家才能用它寫出有意義的程序。下面是Malbolge中看起 來像‘Hello World!”程序:
原文鏈接:http://tutorialzine.com/2013/12/the-10-weirdest-programming-languages/