计算机语言 Brainfuck

未知
未知
2009-07-14
红薯

Brainfuck,是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于“绿王八”的原因,这种语言有时被称为brainf**kbrainf***,甚至被简称为BF。这种 语言,是一种按照“Turing complete(完整图灵机)”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言,BrainF**k 语言只有八种符号,所有的操作都由这八种符号的组合来完成。

BF基于一个简单的机器模型,除了八个指令,这个机器还包括:一个以字节为单位、被初始化为零的数组、一个指向该数组的指针(初始时指向数组的第一个字节)、以及用于输入输出的两个字节流。

下面是这八种指令的描述,其中每个指令由一个字符标识:

字符含义
> 指针加一
< 指针减一
+ 指针指向的字节的值加一
- 指针指向的字节的值减一
. 输出指针指向的单元内容(ASCII码)
, 输入内容到指针指向的单元(ASCII码)
[ 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处
] 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处

(按照更节省时间的简单说法,]也可以说成“向后跳转到对应的[状态”。这两解释是一样的。)

(第三种同价的说法,[意思是"向前跳转到对应的]“,]意思是”向后跳转到对应的[指令的次一指令处,如果指针指向的字节非零。")

Brainfuck程序可以用下面的替换方法翻译成C语言(假设ptrchar*类型):

BrainfuckC
> ++ptr;
< --ptr;
+ ++*ptr;
- --*ptr;
. putchar(*ptr);
, *ptr =getchar();
[ while (*ptr) {
] }
加载中

评论(0)

暂无评论

暂无资讯

1
回答
Boost.Spirit+LLVM,双剑合璧开发一个脑残编译器

周末闲来无事,打算拿LLVM构造一个小程序练练手,正巧我最近在玩Brainfuck语言,所以决定拿LLVM构造一个Brainfuck的编译器。 一个典型的...

2012/09/10 14:58
2
回答
排序算法 Sleep Sort

排序算法好像是程序员学习编程最多的算法,也可能是算法研究者们最喜欢研究的算法了。排序有很多很多的算法,比如,冒泡,插入,选择,堆,快速,归并等等(你可以看...

2011/06/23 09:27
5
回答
BT雷人的程序语言

原文:http://cocre.com/?p=1142 酷壳 这个世界从来都不会缺少另类的东西,人类自然世界如此,计算机世界也一样。编程语言方面,看过本站...

2009/07/14 01:05

没有更多内容

加载失败,请刷新页面

没有更多内容

BrainFuck下的HappyNewYear

BrainFuck下的HappyNewYear

2015/01/01 15:59
101
0
Brainfuck解释器

Brainfuck 语如其名,作为最脑残的编程语言(可能没有之一),它却是最有bigger的玩具,绝对是内涵吐槽、暗恋表白的利器。 Brainfuck C > ++ptr; < --ptr; + ++*ptr; - --*ptr; . putchar(*ptr...

2016/12/22 00:57
136
1
golang 实现brainfuck 解释器

brainfuck 是极为简化esoteric 编程语言,或许可以翻作蛋疼编程语言,仅有八条指令,如果用这玩意搞项目,应该比汇编编程还蛋疼,不过据说是图灵完全。它的hello world 是这样的: ++++++++...

2015/03/09 19:22
48
0
C语言实现的轻量级brainfuck语言解释器

知道brainfuck的时候是在大一下学期的时候了,一直觉得这语言好神奇,但是觉得实现的功能应该有限。直到最近想要做一个小的解释器才开始深入了解和研究。 Brainfuck语言,因为其中带有脏话,...

2013/01/20 23:47
3.2K
0
Brainfuck 编程语言

很偶然的机会认识到这个语言,当时在纸上对着它的 "hello world" 程序一个字符一个字符的解释了一遍,惊讶于它的设计思想。到网上查了下,记录下来。 以下是正文 : ----------------------...

2014/09/23 13:23
312
0
几乎所有编程语言的hello, world程序(1)

简介 “hello, world”程序是指在电脑屏幕上打印/输出”hello, world”这行字符串的应用程序。该范例最早出自1972年由贝尔实验室成员布莱恩柯林汉撰写的内部技术档案”A Tutorial Introducti...

2015/09/08 21:47
34
0
编程语言

常用编程语言: C,C++,JAVA,Javascript,PHP,Python 工业编程语言: A+ | Ada | 汇编语言| B | Brainfuck | C | C++ | C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython ...

2018/10/07 16:50
11
0
【娱乐】耗叔游戏fun.coolshell.cn 攻略

fun.coolshell.cn 是左耳朵耗子-陈皓 2014年开发的一个烧脑游戏。因为平时就喜欢烧脑游戏,尤其是代码相关的,近日他翻出来, 我就顺便去玩了一下,记录了一下过程。全程都有用到搜索引擎,尽...

2016/03/23 11:53
91
1
适合Python 新手的5大练手项目,你练了么?

已经学习了一段时间的Python,如果你看过之前W3Cschool的文章,就知道是时候该进去【项目】阶段了。但是在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? W3Cschool首先有两点建...

2018/05/10 16:17
139
0
小白:适合Python 新手的5大练手项目, 你练了么?

已经学习了一段时间的Python,如果你看过之前柯西的文章,就知道是时候该进去【项目】阶段了。 但是在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? 柯西首先有两点建议: 最好...

2018/05/08 22:38
30
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部