Esolang——0.前言:奇特的編程語言
????????相信各位點進來的人一定都有一定的編程基礎(chǔ)。
????????編程語言的出現(xiàn),實際上是為了讓機器能夠干出人類想干的事。但人類發(fā)現(xiàn)可以這么干之后,很快就不止局限于打印helloworld了,而是想著去解決其他更多問題。在這樣的需求下,人們?yōu)榱俗约旱姆奖?,發(fā)明了各種各樣的編程語言。有的語言適合各種問題,被稱為泛用語言(General-Purpose Language,簡稱GPL),比如C、Java、Python;有的語言則適合某一領(lǐng)域的專門問題,被稱為領(lǐng)域?qū)S谜Z言(Domain Specific Language,簡稱DSL),比如SQL。這些語言造就了現(xiàn)在豐富多彩的計算機世界。
????????然而,有這么一幫人,他們不滿足于現(xiàn)狀。他們不滿足于現(xiàn)行的各種語言,轉(zhuǎn)而開發(fā)各類奇特的語言。他們的目的各不相同,有的是為了試驗他們古怪的想法,有的是為了讓簡單的編程變得困難,有的為了證明概念,有的只是為了好玩。但不管怎樣,他們確實發(fā)明了一門語言,而且這些語言有些還是圖靈完備的。這類語言有一個統(tǒng)稱——esoteric programming language,簡稱esolang。知乎用戶濤吳將其翻譯為“蛋疼的編程語言”[1],我深以為然。
????????但不管怎么說,這些語言畢竟畢竟在世界上留下了一席之地,這些語言當(dāng)中很多還非常有名,成為了一種互聯(lián)網(wǎng)文化。比如BrainFuck,出現(xiàn)在了Nazogame、中科大信安賽等等地方。還有比如如下這個QuineRelay項目,使用一種語言編出一個輸出另一種語言的程序,輸出的這個程序又能輸出另一種語言的程序,如此循環(huán),最后回到最初的語言。該項目使用了128種語言,其中不乏屬于esolang的語言。[2]

????????然而,在國內(nèi),我沒有找到很多相關(guān)資料,所以我開這個坑,希望能填補上這一空白。(講道理這個空白不填有關(guān)系嗎……)
????????最后給大家推薦兩個網(wǎng)站:
https://esolangs.org/wiki/Main_Page
https://github.com/angrykoala/awesome-esolangs

參考資料:
知乎:怎樣設(shè)計一套編程語言? - 濤吳的回答?https://www.zhihu.com/question/19756886/answer/13078616
github:mame/quine-relay?https://github.com/mame/quine-relay