#contest #student #esolang #programming-language #esoteric #bps-coders #submitted

app bpsfuck

2021 #BPSCoders 学生竞赛提交的 BrainFuck 解释器

3 个版本

0.1.2 2021年12月12日
0.1.1 2021年12月12日
0.1.0 2021年12月12日

#19 in #contest

BSD-3-Clause

7KB
82

BPSFuck

BPSFuck 是提交给 2021 #BPSCoders 学生竞赛的 BrainFuck 解释器。它是为竞赛第 6 项提交的。

BrainFuck 是一种在 90 年代初创造的奇闻编程语言。它由一组 8 个 "命令" 组成,这些命令在一个(理论上)无限的、字节大小的单元带上操作,每个单元带包含一个从 0 到 255 的值。命令如下

命令 效果
+ 增加当前单元的值
- 减少当前单元的值
> 将单元带向右移动一个单元
< 将单元带向左移动一个单元
. 输出当前单元的值
, 读取一个字节输入并将其存储在当前单元

此列表仅包含 6 个命令,因为剩余的两个命令是成对出现的。它们是 [],它们必须成对出现 - 类似于括号。一起,它们形成一个循环,只要当前单元(即在每次重复开始时关注的单元)不为零,就重复包含的命令。上表可以继续如下

命令 效果
[ 如果当前单元为零,则跳转到相应的 ] 命令之后
] 如果当前单元非零,则跳转到相应的 [ 命令之后

这两个命令中任何一个的定义都可以替换为 "无条件跳转到相应的 [/]",而不会改变系统的行为,但不能同时替换。

您可以在 Esolang Wiki 上了解更多关于 BrainFuck 的信息。

要运行此解释器,您需要安装 Rust 工具链。您可以在 Rust 网站 上找到支持平台上的下载和安装说明。

要运行解释器,请在您选择的终端中调用命令 cargo run -- source.bf,其中 source.bf 是包含您的 BrainFuck 源代码的文件路径。

或者,您可以通过调用命令 cargo install bpsfuck 来安装解释器,然后使用 bpsfuck source.bf 来运行解释器。

待办事项

  • 支持任意字符作为空操作

本项目采用 BSD 3-Clause 许可协议。

依赖关系

~600KB
~12K SLoC