如果你认为学习 C、C++ 或 Java 这些编程语言很难,那只能说太年轻了,这个世界上还存在着很多入门即放弃的编程语言。
1、Malbolge
Malbolge是一种深奥编程语言(esoteric programming language),由 Ben Olmstead 在 1998年设计,被认为是世界上最难理解和编写的编程语言之一。
Malbolge 语言采用三进制系统,只有三个操作符,并且代码在运行时会自我修复,这使得它非常难以理解和调试。
Malbolge 的执行过程具有随机性,每次运行都可能产生不同的结果。
Malbolge 被认为是“来自地狱的编程语言”。
以下为 Malbolge 程序输出 “Hello,world” 的代码:
(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc
2、INTERCAL
INTERCAL 全称为 “Compiler Language With No Pronounceable Acronym”,是一种故意设计得难以理解和使用的编程语言。
INTERCAL 语言由唐·伍兹(Don Woods)和詹姆斯·M·里昂(James M. Lyon)在 1972 年于普林斯顿大学创造。
INTERCAL 的创造初衷是为了讽刺当时存在的各种编程语言,以及 20 世纪 60 年代提出的语言结构和符号
以下为 INTERCAL 程序输出“Hello,world”的代码。
DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READOUT ,1
PLEASE GIVE UP
3、Brainfuck
Brainfuck 是一种极简编程语言,由 Urban Müller 在 1993 年设计,初衷是创建一种尽可能小但又 Turing 完备的编程语言。
Brainfuck只有 8 个基本命令,尽管它的命令少而简单,但能完成所有计算任务,这也让 Brainfuck 成为了编程语言中极简主义的代表。
Brainfuck 通过操作一个字节数组(通常为 30,000 个元素)来进行编程,这些命令主要包括:
以下为 Brainfuck 程序输出 “Hello,world” 的代码:
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
4、COW
COW 由 Sean Heber 于 2003 年设计。
COW 的特别之处在于仅使用 “moo” 作为指令核心,灵感来源于牛的叫声,十分符合恶搞和极简主义的风格。
COW 的设计目标显然不是实用性,而是娱乐性和挑战编程极限。
COW 的指令集总共包含 12 条指令,其中大多数都是由单词 “moo” 组合而成的变种:
以下为 COW 程序输出 “Hello,world” 的代码:
MoO MoO MoO MoO MoO MoO MoO MoO MOO moO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO
MoO MoO moO MoO MoO MoO MoO mOo mOo mOo mOo mOo MOo moo moO moO moO moO Moo moO MOO mOo MoO moO MOo moo mOo MOo MOo MOo Moo MoO MoO
MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo MMM mOo mOo mOo MoO MoO MoO MoO Moo moO Moo MOO moO moO MOo mOo mOo MOo moo moO moO MoO
MoO MoO MoO MoO MoO MoO MoO Moo MMM MMM Moo MoO MoO MoO Moo MMM MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo mOo MoO Moo
5、Whitespace
Whitespace 由 Edwin Brady 和 Chris Morris 于 2002 年设计发布。
Whitespace 的独特之处在于,所有的语法都是由空白字符组成,包括空格、制表符和换行符,而普通的可见字符会被忽略,也就是说在代码中,所有可见字符都被视为注释,而程序的核心逻辑完全由不可见字符控制。
Whitespace 的指令集中主要由以下几个部分组成,通过不同组合的空格(Space)、制表符(Tab)和换行符(LF)来表达:
堆栈操作:进行数据的入栈、出栈、复制和交换等操作。
算术运算:支持基本的加、减、乘、除、取模等运算。
堆栈访问:用于访问和修改堆栈中数据。
流控制:支持条件跳转、无条件跳转以及循环控制。
输入输出:支持输入输出操作,包括读取字符、数字输入和输出等。
在下面的代码中,每个空格、制表符或换行符前面分别有一个注释 “S”、“T” 或 “L”:
S S S T S S T S S S L
T L
S S S S S T T S S T S T L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S T T T T L
T L
S S S S S T S T T S S L
T L
S S S S S T S S S S S L
T L
S S S S S T S T S T T T L
T L
S S S S S T T S T T T T L
T L
S S S S S T T T S S T S L
T L
S S S S S T T S T T S S L
T L
S S S S S T T S S T S S L
T L
S S S S S T S S S S T L
T L
S S L
L
L
6、wenyan
文言文编程语言,严格遵循中国古典文学的语法和语调,此外,文言的字母只包含繁体汉字和「」引号,这语法对外国人来说应该是噩梦了。
不过比起上面几个,wenyan 已经不算难了。
开源地址:https://github.com/wenyan-lang/wenyan
以下为 wenyan 程序输出 “Hello,world” 的代码:
吾有一數。曰三。名之曰「甲」。
為是「甲」遍。
吾有一言。曰「「問天地好在。」」。書之。
云云。
< END >
为了帮助想要尝试做副业的朋友们,小灰撰写了一份电子小册,分享自己8年的自媒体经验,有兴趣的小伙伴欢迎扫码订阅: