> Photo by Jantine Doornbos on Unsplash
存在大量的編程語言。 如果包括難以置信的甚至是已淘汰的產品,則將近700。 當前,編寫您自己的編程語言比以往任何時候都容易,并且有很多方法可以實現。 創建自己的編程語言的較低入門門檻導致了許多新的,有趣的,有時是奇怪的語言。
這些獨特的語言中有一些具有獨特的目的,而其他一些則純粹是學術性的甚至是喜劇性的。 能夠寫僅由兩個或三個字符組成的語言可能不是最有用的方法,但在這種情況下,旅程可能比目的地更有價值。 從頭開始學習創建語言的實際內容,并確定諸如解釋與編譯,靜態與動態之類的東西,可能是寶貴的經驗。
盡管以前曾無數次討論過奇特而深奧的編程語言,但我整理了一份獨特的清單,列出了新的和相當古老的語言。 讓我們一起探索其中一些奇怪的發現,并發現突破編程界限的語言。
1. LOLCODE
> http://www.lolcode.org/
首先是深奧的編程語言的"經典"。 LOLCODE于2007年問世,它基于" lolcats"語言。 如果您想知道它是什么樣的,下面是一條讀取文件內容的語句:
PLZ OPEN FILE "<filename>"?
好笑吧? 雖然這種語言乍一看似乎像是一個可愛的玩具,但實際上它是一種相對完整的語言。 甚至有完整的教程集可用于tutorialspoint上的LOLCODE的不同元素。
LOLCODE甚至啟發了其他衍生項目,例如LOLPython,它是LOLCODE的翻譯版本,可與Python一起使用。
2. ArnoldC
> http://lhartikk.github.io/ArnoldC/
還記得《終結者》電影嗎? 還記得阿諾德·施瓦辛格的一些名言嗎? 您是否曾經想過用他的熱門電影中的每句話都是一句話來編寫語言的代碼? 好了,現在您可以使用ArnoldC!
ArnoldC是一種語言,使您幾乎可以完全使用Arnold Schwarzenegger的報價進行開發。 如果您過去幾十年來一直生活在一塊巖石上,請查看一些著名語錄的清單。 這是來自ArnoldC網站的示例代碼片段:
IT'S SHOWTIMETALK TO THE HAND "hello world"
YOU HAVE BEEN TERMINATED
這只是一個簡單的" Hello World"程序。 更完整的程序看起來很有趣,而且閱讀起來非常有趣。 Sublime Text甚至提供了一個語法突出顯示插件,因此您可以真正炫耀自己的ArnoldC技能。
3. Velato
這是一種獨特的編程語言,并且很好地說明了如何獲得有趣的語言。 Velato是一種使用MIDI文件編寫的語言。 在這種情況下,MIDI文件既可以構成音樂,也可以構成軟件。 每個指令基于音符本身的音高和音符之間的間隔。
> http://velato.NET/Language/HelloWorld/
上圖所示的片段實際上是產生音樂和軟件輸出的示例" Hello World"程序。 如果您要通過MIDI軟件演奏樂曲,這聽起來可能不像是一件真正的藝術品,但是它將在Velato中生成一個正常運行的程序。
Velato有很多音樂/軟件交叉的可能性。 您可能會挑戰自己,創作一首既能完成編程任務又能聽起來……音樂的音樂。
4.披薩
> http://pizzacompiler.sourceforge.net
不,不是真正的比薩。 比薩編程語言。 這是一種基于JAVA的語言,是在Java具有其今天擁有的許多功能(例如泛型或代數類型)之前編寫的。 比薩可以說是此列表中較不陌生的語言之一,但在Java歷史中占有很有趣的位置。
比薩看起來很像Java,因為它實際上就是Java。 在該語言的后期,它甚至可以在常規Java環境中運行。 這是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的繼任者,它以更簡化的方式和更強大的功能集來實現事物。 要了解有關Pizza和其他基于Java的語言的歷史的更多信息,請查看此處提供的Martin Odersky訪談。
自己寫
無論您是對編程語言的構建方式感到好奇還是只想創建一種吸引人的有趣語法,都有大量資源可用來編寫自己的語言。
Chirag Khandelwal給初學者寫了一篇很棒的文章。 他帶領您完成了開發自定義編程語言的旅程,并向您展示了您在此過程中必須做出的一些有趣的選擇。
謝謝閱讀! 希望您喜歡隨著時間的推移而發明的一些有趣的編程語言。