几种难到令人发指的编程语言
本帖最后由 中英文泡椒 于 2024-11-23 17:45 编辑你觉得学习的C、C++ 或 Java 这些编程语言难吗,如果你觉得已经把常见的编程语言都“拿捏”了{:10_279:}
那你可以看看这几种编程语言,它们会颠覆你对编程界的印象的{:10_282:} {:10_282:}
(酝酿震惊情绪)
1、Malbolge
这门由Ben Olmstead于1998年创造的深奥编程语言(esoteric programming language), 被认为是“来自地狱的编程语言”。
Malbolge 语言采用三进制系统,只有三个操作符,并且代码在运行时会自我修复,这使得它非常难以理解和调试。
Malbolge 的执行过程具有随机性,每次运行都可能产生不同的结果。
以下为 Malbolge 程序输出 “Hello,world” 的代码:
(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc
2、INTERCAL
全称“Compiler Language With No Pronounceable Acronym”,由唐·伍兹与詹姆斯·M·里昂于普林斯顿大学联手打造,诞生于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 <- #48PLEASE
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.wenyan
作为文言文编程语言,wenyan严格遵循中国古典文学的语法与韵味,其字母体系仅限于繁体汉字与「」引号,
对于非母语的老外而言,这无疑也是一门相当噩梦的编程语言,然而,相较于这篇出现的编程语音,wenyan 已经不算难了。
它在传承古典文化的同时,也为编程世界增添了一抹独特的东方韵味。
开源地址:
https://github.com/wenyan-lang/wenyan
以下为 wenyan 程序输出 “Hello,world” 的代码:
吾有一數。曰三。名之曰「甲」。
為是「甲」遍。
吾有一言。曰「「問天地好在。」」。書之。
云云。
4.Brainfuck
Urban Müller于1993年推出的极简编程语言,以其仅8个基本命令的极简设计,
却能实现所有计算功能,成为编程语言中极简主义的代表。
Brainfuck 通过操作一个字节数组(通常为 30,000 个元素)来进行编程,这些命令主要包括:
>:指针右移一位
<:指针左移一位
+:当前指针指向的内存单元加 1
—:当前指针指向的内存单元减 1
.:输出当前指针指向的单元内容(通常输出为 ASCII 字符)
,:从输入读取一个字符,存入当前指针指向的单元
[:如果当前单元值为 0,跳转到对应的 ]
]:如果当前单元值不为 0,跳回到对应的 [
以下为 Brainfuck 程序输出 “Hello,world” 的代码:
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
5.COW
Sean Heber于2003年创造的COW语言,以其独特的“moo”指令核心,将恶搞与极简主义完美融合。
COW的设计并非出于实用考虑,而是旨在探索编程的趣味性和极限,让编程者在欢笑中感受编程的另类乐趣。
COW 的指令集总共包含 12 条指令,其中大多数都是由单词 “moo” 组合而成的变种:
moo:设置当前内存单元的值为 0。
mOo:将当前内存单元的值自增 1。
moO:将当前内存单元的值自减 1。
mOO:输出当前内存单元的 ASCII 值。
OOO:接收一个字符的输入并将其 ASCII 值存入当前单元。
Ooo:将指针右移到下一个内存单元。
oOo:将指针左移到上一个内存单元。
OOo:如果当前内存单元的值为 0,跳转到下一个 moo 指令。
MOO:程序终止。
以下为 COW 程序输出 “Hello,world” 的代码:
6.Whitespace
由Edwin Brady与Chris Morris于2002年共同发布,Whitespace以其颠覆性的设计理念震撼了编程界。
在这门语言中,所有的语法结构均由空白字符(空格、制表符、换行符)构成,
而传统的可见字符则被视为注释,也就是说普通的可见字符会被忽略,所有的语法都是由空白字符组成
Whitespace 的指令集中主要由以下几个部分组成,
通过不同组合的空格(Space)、制表符(Tab)和换行符(LF)来表达:
1.堆栈操作:进行数据的入栈、出栈、复制和交换等操作。
例如:[空格][空格] 表示将数值推入堆栈。
2.算术运算:支持基本的加、减、乘、除、取模等运算。
例如:[空格][加法] 表示对堆栈顶部的两个元素进行加法。
3.堆栈访问:用于访问和修改堆栈中数据。
例如:[换行][存储] 表示将值存储在特定位置。
4.流控制:支持条件跳转、无条件跳转以及循环控制。
例如:[空格][标记] 用于标记位置,以便之后跳转。
5.输入输出:支持输入输出操作,包括读取字符、数字输入和输出等。
例如:[空格][输出字符] 表示输出栈顶字符。
在下面的代码中,每个空格(Space)制表符(Tab)和换行符(LF)前面分别有一个注释 “S”、“T” 或 “L”:
S S S TS S TS S S L
TL
S S S S S TTS S TS TL
TL
S S S S S TTS TTS S L
TL
S S S S S TTS TTS S L
TL
S S S S S TTS TTTTL
TL
S S S S S TS TTS S L
TL
S S S S S TS S S S S L
TL
S S S S S TS TS TTTL
TL
S S S S S TTS TTTTL
TL
S S S S S TTTS S TS L
TL
S S S S S TTS TTS S L
TL
S S S S S TTS S TS S L
TL
S S S S S TS S S S TL
TL
S S L
L
L
涨姿势了~ 这是密文吧 {:10_257:}666
小甲鱼的二师兄 发表于 2024-11-23 20:24
涨姿势了~
{:5_109:}
页:
[1]