Esolang——0.前言:奇特的编程语言
相信各位点进来的人一定都有一定的编程基础。
编程语言的出现,实际上是为了让机器能够干出人类想干的事。但人类发现可以这么干之后,很快就不止局限于打印helloworld了,而是想着去解决其他更多问题。在这样的需求下,人们为了自己的方便,发明了各种各样的编程语言。有的语言适合各种问题,被称为泛用语言(General-Purpose Language,简称GPL),比如C、Java、Python;有的语言则适合某一领域的专门问题,被称为领域专用语言(Domain Specific Language,简称DSL),比如SQL。这些语言造就了现在丰富多彩的计算机世界。
然而,有这么一帮人,他们不满足于现状。他们不满足于现行的各种语言,转而开发各类奇特的语言。他们的目的各不相同,有的是为了试验他们古怪的想法,有的是为了让简单的编程变得困难,有的为了证明概念,有的只是为了好玩。但不管怎样,他们确实发明了一门语言,而且这些语言有些还是图灵完备的。这类语言有一个统称——esoteric programming language,简称esolang。知乎用户涛吴将其翻译为“蛋疼的编程语言”[1],我深以为然。
但不管怎么说,这些语言毕竟毕竟在世界上留下了一席之地,这些语言当中很多还非常有名,成为了一种互联网文化。比如BrainFuck,出现在了Nazogame、中科大信安赛等等地方。还有比如如下这个QuineRelay项目,使用一种语言编出一个输出另一种语言的程序,输出的这个程序又能输出另一种语言的程序,如此循环,最后回到最初的语言。该项目使用了128种语言,其中不乏属于esolang的语言。[2]

然而,在国内,我没有找到很多相关资料,所以我开这个坑,希望能填补上这一空白。(讲道理这个空白不填有关系吗……)
最后给大家推荐两个网站:
https://esolangs.org/wiki/Main_Page
https://github.com/angrykoala/awesome-esolangs

参考资料:
知乎:怎样设计一套编程语言? - 涛吴的回答 https://www.zhihu.com/question/19756886/answer/13078616
github:mame/quine-relay https://github.com/mame/quine-relay