问题标签 [brainfuck]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - getchar() 从前一个 printf() 中取出最后一个字符?
我正在为深奥的语言 Brainf*ck 编写编译器/解释器(我不太确定 StackOverflow 的亵渎政策,所以我会审查自己,直到有人告诉我我不必这样做),我正在运行进入一个非常神秘的(至少对我而言)错误,其中我的调试输出中的最后一个字符被接受为正在运行的brainf*ck 程序的输入。以下是解释器的源代码:brainf*ck.c,程序的源代码:OR.bf,以及通过 Brainf*ck 可执行文件运行 OR.bf 的输出的部分打印。(对于凌乱的代码,我提前致歉。我在不到一天的时间内将解释器写成了一个有趣的项目。)提前感谢您的帮助!
Brainf * ck.c:
OR.bf:
输出:
上面的输出格式如下: eval: <*instruction ptr> <*data ptr>
(所以似乎是在破坏上面的行,所以只需参考 Brainf*ck.c 中 eval() 的开头。
如您所见,输出的倒数第二行和最后一行表明 getchar() 是(出于某种原因)从倒数第二行的末尾获取换行符,而不是等待用户输入(就像它在 line 1)。
我对为什么在我的程序中出现这个错误而不是如何修复它更感兴趣,因为它让我认为我没有像我想象的那样对 C 中的输入流有很好的处理,但建议修复(当然)是受欢迎的。
wolfram-mathematica - 使用元胞自动机的 Brainfuck 解释器
有没有人有一套用于脑残解释器的元胞自动机规则?我认为它类似于通用图灵机的实现。这些存在于 wolfram 网站上,但我不知道如何为 BF 系统调整它们。
brainfuck - Brainfuck 中的无限计数循环
作为我的brainf*ck 实现的调试器/测试程序,我创建了以下计数循环:
使用单字节环绕单元格和带有环绕单元格的 30k 单元格,这将创建一个无限计数循环。它将每个单元格设置为 1,然后将每个单元格设置为 2,等等。
我的问题是,当它达到 255 时,内循环将单元格增加到 0,然后外循环立即将其增加到 1。这在溢出时充当“双步”,而不是单步。这是我可以让循环在这个紧凑的程序中无限继续的唯一方法。
每个单元格的计数0 -> 1 -> 2 ... 254 -> 255 -> 1 ...
虽然我希望它去0 -> 1 -> 2 ... 254 -> 255 -> 0 -> 1 ...
当前单元格为零时,很难继续循环。我玩过同一主题的变奏曲,但没有一个能做得恰到好处。
这个特定的程序只是一个用于测试的简单计数程序,但真正对我未来的程序有帮助的是知道如何反转循环条件,就像我需要使这个计数循环工作一样。
loops - 为什么我的 Hello World 程序失败了?
所以,我在BrainFuck中手写了这个程序:
它完全显示了我想要的:
但后来我想让它HELLO WORLD
连续显示五次,所以我把它包装在一个循环中:
我希望它有这个输出:
但它改为显示:
我的循环做错了什么?为什么它HELLO WORLD
不像预期的那样连续显示五次?
java - 高级 Java 控制台输入
作为一种自我实践,我正在用 Java 制作一个通过控制台执行 I/O 的BF解释器。在大多数情况下,这很好,但是,正如您可能知道的那样,BF 一次输入一个字符,包括换行符。这意味着据我所知,标准控制台输入库不起作用,因为它们接收整个字符串,然后在最后要求返回。我想,
接受下一个适合 a 的击键char
而不在键入时打印它。因此,当 BF 要求输入并且您输入 时a
,它会接收 ,a
但不会在控制台中显示它,除非 BF 程序a
稍后自行输出。
我怎样才能做到这一点?
compiler-construction - 有史以来最小的编译器
昨天,我在网上看到了一篇关于编程语言的文章,叫做BrainFuck
.
http://www.muppetlabs.com/~breadbox/bf/
所以奇怪的是我是这个
那么,它真的是当今图灵完备编程语言的最小编译器吗?是否证明了更小的编译器无论如何都不存在?
这方面有没有结果。我真的很感兴趣,图灵完备的编程语言的编译器的大小是否有最小值,这个值是多少?
console-application - 字符打印程序运行不正常
我一直在制作一个程序,将给定字符之前的每个字符输出到屏幕上,但是……我一直在用 Brainfuck 做这件事!:)
我希望能够输入一个字符,并查看它之前的所有字符。我到目前为止的代码只输出一个空格,然后在退出之前等待下一次按键。
我已经尝试了很长时间来弄清楚这段代码有什么问题,但是我所做的一切都把它搞砸了。
math - 如何在brainfuck中读取多位数字
我想用 bf 读取任意位数的数字。如果我手动设置,我知道如何读取正确的位数,如下所示:
但我宁愿能够设置一个数字,cell 0
然后为每个数字自动乘以正确的次数。我最好做什么?
scala - scala中的Brainfuck编译器
想要制作一些领域特定语言(DSL)进行练习,首先想到的是编写Brainfuck的解释器或编译器。第一个想法是重写函数,例如它们将表现为 Brainfuck 命令:">"
, "<"
, "+"
, "-"
, "."
, ","
, "["
, "]"
. 不幸的是,您不能将函数作为"."
.
有没有更好的解决方案来用 Scala 编写它?
c - 脑残翻译
有人可以为我描述一下这个脑残的翻译吗?