“永遠(yuǎn)沒(méi)有完功的程序”是程序界的一個(gè)定律,人們都認(rèn)為編程語(yǔ)言很容易使用和學(xué)習(xí)。編程語(yǔ)言應(yīng)該給你提供數(shù)據(jù)結(jié)構(gòu)讓你來(lái)解決實(shí)際問(wèn)題,它們的語(yǔ)法也應(yīng)清晰明了,容易理解且執(zhí)行速度快,沒(méi)有任何bug。但有時(shí)候編程語(yǔ)言設(shè)計(jì)者們會(huì)創(chuàng)建一些違背這些原則的語(yǔ)言,要么供研究使用要么純屬娛樂(lè)。下面是10種最怪異的最不切實(shí)際的編程語(yǔ)言。
1.LOLCODE
很少有編程語(yǔ)言像LOLCODE這樣注入了這么多網(wǎng)絡(luò)時(shí)代的成分(譯者注:LOLCODE是一種建立在高度縮寫(xiě)的網(wǎng)絡(luò)英語(yǔ)之上的編程語(yǔ)言)。它由英國(guó)蘭卡斯特大學(xué)研究員 Adam Lindsay于2007年創(chuàng)建,該語(yǔ)言的關(guān)鍵字都是大寫(xiě)的且meme-fied.。你幾乎可以想象一個(gè)貓?jiān)谏a(chǎn)中使用它。
與該份列表中的大部分語(yǔ)言一樣,LOLCODE沒(méi)有標(biāo)準(zhǔn)庫(kù)可言。這意味著你只能使用LOLCODE來(lái)讀取文件或?qū)懭胛谋镜?a target="_blank">控制臺(tái)而不能干其他的事。如果你需要功能更強(qiáng)的版本,那么看看因LOLCODE受到啟發(fā)的LOLPython,它可以讓你訪問(wèn)所有Python的強(qiáng)大的功能庫(kù)。
2.Glass
Glass是一門深?yuàn)W的編程語(yǔ)言,由Gregor Richards于2005年發(fā)展起來(lái)。它將非直觀的后綴符號(hào)與沉重的面向?qū)ο蠼Y(jié)合起來(lái),需要一個(gè)主棧與其面向?qū)ο蟮慕Y(jié)構(gòu)相結(jié)合才能進(jìn)一步玩出花樣。據(jù)作者所言沒(méi)有其它的語(yǔ)言像這樣執(zhí)行,因?yàn)榭雌饋?lái)非常的白癡。
下面是該語(yǔ)言的一個(gè)例子,程序輸出Fibonacci 序列:
3.Brainfuck
Brainfuck是晦澀難懂的語(yǔ)言巨星,受到了大批崇拜者的追捧。該語(yǔ)言是出了名的難以編程,僅有8個(gè)簡(jiǎn)單的命令和一個(gè)指令指針。它的設(shè)計(jì)就是為了挑戰(zhàn)和娛樂(lè)程序員,而不是為了用于實(shí)際用途。它由Urban Müller于1993年創(chuàng)建。
下面是“Hello world!”的例子:
4.Chicken
Chicken不僅是語(yǔ)言的名字,也是該語(yǔ)言允許的唯一關(guān)鍵字。關(guān)鍵字重復(fù)的次數(shù)和換行決定執(zhí)行的具體操作。下面是一個(gè)例子,你能猜出它是干嘛的嗎?
5.Whitespace
Whitespace是一門很出色的編程語(yǔ)言。它僅通過(guò)空格、制表符和回車來(lái)理解并忽略所有其他字符。這個(gè)特性還允許Whitespace程序隱藏在其他語(yǔ)言程序的源代碼中,例如JavaScript,Javascript的縮進(jìn)就是用空格寫(xiě)的。下面是一個(gè)例子用以打印“Hello, world!”(S表示單個(gè)空格,T表示制表符):
6.///
///是一門極簡(jiǎn)派風(fēng)格的編程語(yǔ)言,僅包含一個(gè)操作—即用/source/replacement/這樣的形式進(jìn)行字符串替換。它由Tanner Swett于2008年發(fā)明。該語(yǔ)言的功能十分有限,但是一些聰明的程序員能夠?qū)⒆址鎿Q轉(zhuǎn)換為完整的工作程序,用以循環(huán)和輸出數(shù)據(jù),下面是一個(gè)簡(jiǎn)單的“Hello, world!”的程序:
7.Befunge
Befunge是一個(gè)二維編程語(yǔ)言。你的代碼放在一個(gè)固定大小的場(chǎng)地,該場(chǎng)地的每一列都能存放代碼或者數(shù)據(jù),你的程序可以替換任何想要替換的列。解釋器從左上列開(kāi)始從左到右解析。你可以用特殊的方向指令控制解釋器的方向。例如,下面是一個(gè)無(wú)線循環(huán)的例子:
而下面這個(gè)是“Hello, world!”的程序:
8.Piet
Piet編程語(yǔ)言的程序看起來(lái)都像抽象畫(huà)的位圖,基本的構(gòu)建塊就是顏色塊。它支持20種不同的顏色,有些實(shí)現(xiàn)支持的更多。編譯器由圖像周圍的移動(dòng)“指針”引導(dǎo),在圖像中從一個(gè)色塊移動(dòng)到下一個(gè)。下面是一個(gè)“Hello world!”程序:
9.Malbolge
Malbolge語(yǔ)言由Ben Olmstead于1998年發(fā)明,以“但丁的地獄”中地獄的第8圈命名。該名字不是隨機(jī)選取的—該語(yǔ)言設(shè)計(jì)的初衷就是為了不可能寫(xiě)出有用的編程語(yǔ)言。在創(chuàng)建幾年后,有人發(fā)現(xiàn)了設(shè)計(jì)中的漏洞使其能寫(xiě)Malbolge程序。你必須得成為一個(gè)密碼科學(xué)家才能用它寫(xiě)出有意義的程序。下面是Malbolge中看起來(lái)像‘Hello World!”程序:
10.~English
~English是一門試圖模仿自然聲音語(yǔ)言的編程語(yǔ)言,其語(yǔ)法非常寬松,使程序員有很大的自由表達(dá)空間。但程序員不能自己定義函數(shù)而只能使用該語(yǔ)言內(nèi)置的函數(shù)。下面是一個(gè)例子程序
榮譽(yù)提名: JavaScript
Javascript是如今最受歡迎的編程語(yǔ)言,但受歡迎帶來(lái)的副作用就是該語(yǔ)言自身的每處特性,無(wú)論該語(yǔ)言多美妙,還是每天給成千上萬(wàn)的程序員帶來(lái)了bug,這使得JS也列在這里。這里有一個(gè)完整的網(wǎng)站列出了Javascript的怪異之處,給你一個(gè)例子,下面是兩個(gè)簡(jiǎn)短的完全有效的JS片段(你可以在你的控制臺(tái)上試驗(yàn)一下):
下一個(gè): 傳《黑道圣徒5》泄露? 6名神秘角色浮出水面
瀏覽量:02024-10-10
瀏覽量:12021-05-10
瀏覽量:02021-05-10
瀏覽量:02017-08-09
瀏覽量:02017-08-05
瀏覽量:02015-04-17