3 个版本
0.1.2 | 2021年12月12日 |
---|---|
0.1.1 | 2021年12月12日 |
0.1.0 | 2021年12月12日 |
#19 in #contest
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