你可能不知道的4種奇怪的編程語(yǔ)言
存在大量的編程語(yǔ)言, 如果包括難以置信的甚至是已淘汰的產(chǎn)品,則將近700。 當(dāng)前,編寫您自己的編程語(yǔ)言比以往任何時(shí)候都容易,并且有很多方法可以實(shí)現(xiàn)。 創(chuàng)建自己的編程語(yǔ)言的較低入門門檻導(dǎo)致了許多新的,有趣的,有時(shí)是奇怪的語(yǔ)言。
這些獨(dú)特的語(yǔ)言中有一些具有獨(dú)特的目的,而其他一些則純粹是學(xué)術(shù)性的甚至是喜劇性的。 能夠?qū)憙H由兩個(gè)或三個(gè)字符組成的語(yǔ)言可能不是最有用的方法,但在這種情況下,旅程可能比目的地更有價(jià)值。 從頭開始學(xué)習(xí)創(chuàng)建語(yǔ)言的實(shí)際內(nèi)容,并確定諸如解釋與編譯,靜態(tài)與動(dòng)態(tài)之類的東西,可能是寶貴的經(jīng)驗(yàn)。
盡管以前曾無(wú)數(shù)次討論過(guò)奇特而深?yuàn)W的編程語(yǔ)言,但我整理了一份獨(dú)特的清單,列出了新的和相當(dāng)古老的語(yǔ)言。 讓我們一起探索其中一些奇怪的發(fā)現(xiàn),并發(fā)現(xiàn)突破編程界限的語(yǔ)言。
1. LOLCODE

首先是深?yuàn)W的編程語(yǔ)言的"經(jīng)典"。 LOLCODE于2007年問(wèn)世,它基于" lolcats"語(yǔ)言。 如果您想知道它是什么樣的,下面是一條讀取文件內(nèi)容的語(yǔ)句:
- PLZ OPEN FILE "<filename>"?
好笑吧? 雖然這種語(yǔ)言乍一看似乎像是一個(gè)可愛的玩具,但實(shí)際上它是一種相對(duì)完整的語(yǔ)言。 甚至有完整的教程集可用于tutorialspoint上的LOLCODE的不同元素。
LOLCODE甚至啟發(fā)了其他衍生項(xiàng)目,例如LOLPython,它是LOLCODE的翻譯版本,可與Python一起使用。
2. ArnoldC

還記得《終結(jié)者》電影嗎? 還記得阿諾德·施瓦辛格的一些名言嗎? 您是否曾經(jīng)想過(guò)用他的熱門電影中的每句話都是一句話來(lái)編寫語(yǔ)言的代碼? 好了,現(xiàn)在您可以使用ArnoldC!
ArnoldC是一種語(yǔ)言,使您幾乎可以完全使用Arnold Schwarzenegger的報(bào)價(jià)進(jìn)行開發(fā)。 如果您過(guò)去幾十年來(lái)一直生活在一塊巖石上,請(qǐng)查看一些著名語(yǔ)錄的清單。 這是來(lái)自ArnoldC網(wǎng)站的示例代碼片段:
- IT'S SHOWTIMETALK TO THE HAND "hello world"
- YOU HAVE BEEN TERMINATED
這只是一個(gè)簡(jiǎn)單的" Hello World"程序。 更完整的程序看起來(lái)很有趣,而且閱讀起來(lái)非常有趣。 Sublime Text甚至提供了一個(gè)語(yǔ)法突出顯示插件,因此您可以真正炫耀自己的ArnoldC技能。
3. Velato
這是一種獨(dú)特的編程語(yǔ)言,并且很好地說(shuō)明了如何獲得有趣的語(yǔ)言。 Velato是一種使用MIDI文件編寫的語(yǔ)言。 在這種情況下,MIDI文件既可以構(gòu)成音樂(lè),也可以構(gòu)成軟件。 每個(gè)指令基于音符本身的音高和音符之間的間隔。

上圖所示的片段實(shí)際上是產(chǎn)生音樂(lè)和軟件輸出的示例" Hello World"程序。 如果您要通過(guò)MIDI軟件演奏樂(lè)曲,這聽起來(lái)可能不像是一件真正的藝術(shù)品,但是它將在Velato中生成一個(gè)正常運(yùn)行的程序。
Velato有很多音樂(lè)/軟件交叉的可能性。 您可能會(huì)挑戰(zhàn)自己,創(chuàng)作一首既能完成編程任務(wù)又能聽起來(lái)……音樂(lè)的音樂(lè)。
4. 披薩
> http://pizzacompiler.sourceforge.net
不,不是真正的比薩。 比薩編程語(yǔ)言。 這是一種基于Java的語(yǔ)言,是在Java具有其今天擁有的許多功能(例如泛型或代數(shù)類型)之前編寫的。 比薩可以說(shuō)是此列表中較不陌生的語(yǔ)言之一,但在Java歷史中占有很有趣的位置。
比薩看起來(lái)很像Java,因?yàn)樗鼘?shí)際上就是Java。 在該語(yǔ)言的后期,它甚至可以在常規(guī)Java環(huán)境中運(yùn)行。 這是Wikipedia的Pizza代碼段:
- public final class Main {
- public int main(String args[]) {
- System.out.println( new Lines(new DataInputStream(System.in))
- .takeWhile(nonEmpty)
- .map(fun(String s) -> int {
- return Integer.parseInt(s);
- })
- .reduceLeft(0, fun(int x, int y) -> int { return x + y; })); while(x == 0) { map.create.newInstance() } }}
Scala是Pizza的繼任者,它以更簡(jiǎn)化的方式和更強(qiáng)大的功能集來(lái)實(shí)現(xiàn)事物。 要了解有關(guān)Pizza和其他基于Java的語(yǔ)言的歷史的更多信息,請(qǐng)查看此處提供的Martin Odersky訪談。
自己寫
無(wú)論您是對(duì)編程語(yǔ)言的構(gòu)建方式感到好奇還是只想創(chuàng)建一種吸引人的有趣語(yǔ)法,都有大量資源可用來(lái)編寫自己的語(yǔ)言。
Chirag Khandelwal給初學(xué)者寫了一篇很棒的文章。 他帶領(lǐng)您完成了開發(fā)自定義編程語(yǔ)言的旅程,并向您展示了您在此過(guò)程中必須做出的一些有趣的選擇。
謝謝閱讀! 希望您喜歡隨著時(shí)間的推移而發(fā)明的一些有趣的編程語(yǔ)言。