程序員瘋起來(lái)都用牛叫雞叫寫(xiě)代碼!
但今天給大家分享一門(mén)編程語(yǔ)言,它可以讓寫(xiě)程序的人變成這樣↓
這是一門(mén)叫 ArnoldC 的編程語(yǔ)言
沒(méi)錯(cuò),ArnoldC 里的 Arnold 指的是阿諾德·施瓦辛格
為毛編程語(yǔ)言會(huì)和電影演員扯上關(guān)系,小編給大家介紹一下這個(gè)玩意兒你們就知道為啥這么叫了。。。
![]()
為了讓不了解編程的朋友們也能看懂,簡(jiǎn)單說(shuō)兩句啥是編程語(yǔ)言,有技術(shù)背景的可以考慮跳過(guò)。
編程說(shuō)白了就是你寫(xiě)一段話(一段代碼)去命令電腦做事兒。
概念上說(shuō)來(lái)簡(jiǎn)單,但電腦不懂人話,只懂機(jī)器語(yǔ)言,而且機(jī)器語(yǔ)言我們?nèi)祟?lèi)用著不太趁手,它們大多長(zhǎng)這個(gè)樣兒↓
![]()
編程語(yǔ)言就是一套我們?nèi)祟?lèi)用起來(lái)舒服一點(diǎn)的命令。
一門(mén)語(yǔ)言還有一套對(duì)應(yīng)的編譯工具,類(lèi)似于一位翻譯官,把你說(shuō)的命令轉(zhuǎn)成機(jī)器語(yǔ)言給電腦運(yùn)行。
比如說(shuō)你用 Python 告訴電腦輸出一句話 “ Hello World ”,你可以這么寫(xiě):
Print("Hello World");
其實(shí)很好理解,print 就是打印的意思,上面這句話就是讓電腦把括號(hào)里的內(nèi)容打印到顯示屏上來(lái)。
ArnoldC 這個(gè)語(yǔ)言是基于 Java 開(kāi)發(fā)的,里面的用詞取自電影 《終結(jié)者2》 里阿諾德·施瓦辛格的臺(tái)詞,很是獵奇。。。
比如說(shuō)上面那個(gè)打印命令,在 ArnoldC 里,要寫(xiě)成 TALK TO THE HAND
這個(gè)短語(yǔ) “ talk to the hand ”,大意是用一種鄙視的語(yǔ)氣讓對(duì)方說(shuō)話,類(lèi)似于中文的 “ 有屁快放 ” 。。。
類(lèi)似的獵奇詞句還有很多,而且全部都要大寫(xiě),給人一種霸氣外露的感覺(jué)。
每個(gè)程序最后還要致敬經(jīng)典臺(tái)詞,來(lái)一句 YOU HAVE BEEN TERMINATED

小編裝了一下這個(gè)語(yǔ)言,按照開(kāi)發(fā)者給的提示寫(xiě)了個(gè)簡(jiǎn)單程序
覺(jué)得自己敲的每一行字都自帶冷酷的語(yǔ)氣
然后編譯的時(shí)候報(bào)了個(gè)錯(cuò)(就是翻譯官說(shuō)我下的命令有問(wèn)題)
重點(diǎn)是這個(gè)報(bào)錯(cuò)的語(yǔ)氣挺有態(tài)度的。。
稍微改了改,再運(yùn)行一下
成功輸出了 Hello World !
再舉個(gè)例子大家感受一下,打個(gè)比方,你想寫(xiě)個(gè)程序把數(shù)字 1 到 10 打印一下
這是用 C 語(yǔ)言寫(xiě)的,看不懂沒(méi)事兒~
(其實(shí)這段話哪怕不會(huì)編程,只要懂英語(yǔ),也不難理解,一個(gè)數(shù)一開(kāi)始等于 1,當(dāng)它小于等于 10 的時(shí)候就重復(fù)兩件事:1. 打印自己 2. 給原來(lái)的值加 1 )
這是用 Arnold C 寫(xiě)的程序,大致直接翻譯里面的短語(yǔ)
其實(shí)輸出結(jié)果是一樣的:
但是寫(xiě)完后面的程序,覺(jué)得自己酷到飛起~
實(shí)呢程序員比你們想象得要會(huì)玩兒,除了這個(gè) ArnoldC,不正經(jīng)編程語(yǔ)言多了去了
例如 Cow 語(yǔ)言
沒(méi)錯(cuò),這個(gè) Cow 就是牛。。。
![]()
這個(gè) cow 語(yǔ)言和上面提到的 ArnoldC 一樣,是可以編譯并且成功運(yùn)行的!
語(yǔ)法是根據(jù)牛的叫聲 “ moo ” 進(jìn)行一些變化,例如 “ Moo ” 和 “ mOo ” 代表的是不同意思,來(lái)實(shí)現(xiàn)不同的命令。。。
開(kāi)發(fā)人員提供的開(kāi)發(fā)文檔,一本正經(jīng)有沒(méi)有!![]()
下面這個(gè)程序的源代碼可以印出一句 “ Hello World ”↓
再來(lái)看這門(mén)叫 INTERCAL 的匯編語(yǔ)言,它的特點(diǎn)是要求程序員非常有禮貌,你得加上一些 PLEASE (請(qǐng))。
更獵奇的是,你要是 PLEASE 用得太多了,會(huì)顯得過(guò)于刻意,編譯的時(shí)候有一定幾率不給你通過(guò)。。。
還有一些語(yǔ)言屬于沒(méi)事兒增加難度類(lèi)型的搞笑。。。
比如下面要介紹的 Brainfuck 的語(yǔ)言,它寫(xiě)個(gè) Hello World 的話,源代碼長(zhǎng)這樣↓
![]()
是不是超級(jí)難,看不懂?
所以它叫 Brainfuck 嘛,就是你沒(méi)事兒寫(xiě)它就好比在 gan 自己的大腦。。。
再看另一門(mén)語(yǔ)言, Whitespace (空格),它的特點(diǎn)是所有程序都是空白,編譯器只把空格和換行符號(hào)視為有效的代碼。
這是用 Whitespace 代碼寫(xiě)的 Hello World![]()
誰(shuí)看得出寫(xiě)了啥啊?
其實(shí)要是把它選中高亮一下,還是有 “ 內(nèi)容 ” 的
![]()
嗯。。。雖然這門(mén)語(yǔ)言看起來(lái)很難,但是寫(xiě)起來(lái)一定很爽,可以啪啪啪狂敲鍵盤(pán)!
以上編程語(yǔ)言都有人做了完整的編譯器,真的可以拿來(lái)開(kāi)發(fā)程序!
再放一些奇葩語(yǔ)言寫(xiě)的 Hello World 程序感受一下
還有華盛頓大學(xué)的一名教授 Doug Zongker,搞了個(gè) Chicken 的語(yǔ)言
雞語(yǔ)言版 Hello World,也就 546 個(gè) Chicken 吧。。。![]()
人家搞學(xué)術(shù)的就是認(rèn)真,還發(fā)表了個(gè)論文
而且還被引用了 17 次 ?!!!
![]()
所以各位不是程序員的親們,對(duì)程序員木訥的刻板印象要改一改,他們真的是一群很有意思的人。
不光想的東西很好玩兒,還能一本正經(jīng)地做出來(lái)。。。
iGeekBar的極客小伙伴兒們,你們都玩兒過(guò)什么有意思的編程語(yǔ)言?做過(guò)什么有趣的實(shí)驗(yàn)?zāi)?=@__@=),一起聊聊唄?


浙公網(wǎng)安備 33010602011771號(hào)