#esoteric #vm #language #编程语言 #密码学

malbolge

Rust语言中Malbolge编程语言的实现

2个稳定版本

1.0.1 2019年8月15日
1.0.0 2019年8月14日

755编程语言 中排名

每月下载量:39
mbi 中使用

GPL-3.0 许可证

17KB
244

Rust语言中的Malbolge解释器

('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#" CB]V?Tx<uVtTRpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>

这是怎么回事?

那正是Malbolge中的Hello World。

你所看到的是一种比所有现有语言都要糟糕的语言。它的神秘程度超过Brainfu*k,甚至比它的朋友Befunge更难阅读和编写。

Malbolge是一种自修改的编程语言,旨在故意难以编程且几乎无法阅读。尽管有些研究人员为其辩护,但你可能无法确定仅此代码就能打印出'Hello!'。

(=<`#9]76Z{z2V0/S-Qr*)M:,+*)('&%$#"!~}|{z(Kw%$t"Vq0iAm,,j<h'`%

Hello!

此实现是用纯Rust编写的,并从C和Java参考实现中移植而来,能够执行用Malbolge编写的程序。

这是UNIX cat 程序的Malbolge实现。

(=BA#9"=<;:3y7x54-21q/p-,+*)"!h%B0/.
~P<
<:(8&
66#"!~}|{zyxwvu
gJ%

还提供了一个宏,可以使用原始字符串字面量传入原始的Malbolge二进制文件。

这是打印Hello!的相同程序。

malbolge!(r#"(=<`#9]76Z{z2V0/S-Qr*)M:,+*)('&%$#"!~}|{z(Kw%$t"Vq0iAm,,j<h'`%"#);

请参阅示例以获取更多非平凡的Malbolge程序。

在Malbolge中编程

我不知道为什么有人会想这样做,但我猜你真的很想知道,所以下面是解释。

多年来众所周知,Malbolge几乎不可能编程。在上述'Hello World'程序能够运行之前,Malbolge的第一个有效程序是通过8年的试错和暴力破解找到的。

为什么?

因为我可以,你应该也可以。

示例

请参阅 示例 文件夹,以了解如何通过解释器运行这些程序。

构建

使用此命令构建。

cargobuild

测试

cargotest

许可证

GPLv3+

无运行时依赖