给你们介绍个变态编程语言Brainfuck
来源:互联网 发布:windows 域如何搭建 编辑:程序博客网 时间:2024/05/17 08:17
Brainfuck,是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由於fuck在英語中是髒話,这种语言有时被称为brainf*ck或brainf***,甚至被简称为BF。
Müller的目标是建立一种简单的、可以用最小的编译器来实现的、符合图灵完全思想的编程语言。这种语言由八种状态构成,为Amiga机器编写的编译器(第二版)只有240个字节大小。
就象它的名字所暗示的,brainfuck程序很难读懂。尽管如此,brainfuck图灵机一样可以完成任何计算任务。虽然brainfuck的计算方式如此与众不同,但它确实能够正确运行。
这种语言基于一个简单的机器模型,除了指令,这个机器还包括:一个以字节为单位、被初始化为零的数组、一个指向该数组的指针(初始时指向数组的第一个字节)、以及用于输入输出的两个字节流。
下面是这八种状态的描述,其中每个状态由一个字符标识:
>
指针加一<
指针减一+
指针指向的字节的值加一-
指针指向的字节的值减一.
输出指针指向的单元内容(ASCII码),
输入内容到指针指向的单元(ASCII码)[
如果指针指向的单元值为零,向后跳转到对应的]
指令的次一指令处]
如果指针指向的单元值不为零,向前跳转到对应的[
指令的次一指令处(按照更节省时间的简单说法,]
也可以说成“向前跳转到对应的[
状态”。这两解释是一样的。)
(第三种同价的说法,[
意思是"向後跳转到对应的]
",]
意思是"向前跳转到对应的[
指令的次一指令处,如果指针指向的字节非零。")
Brainfuck程序可以用下面的替换方法翻译成C语言(假设ptr
是char*
类型):
>
++ptr;
<
--ptr;
+
++*ptr;
-
--*ptr;
.
putchar(*ptr);
,
*ptr =getchar();
[
while (*ptr) {
]
}
变态吧!- 给你们介绍个变态编程语言Brainfuck
- 该学习什么编程语言-->brainfuck
- brainfuck语言
- BrainFuck语言
- [Brainfuck]模仿Piet语言表现形式的Brainfuck编程语言表示法
- 6个变态的C语言程序
- 6个变态的C语言
- 给个项目给你们发财我有销路要做来
- 给你们
- Brainfuck
- 大家好,给你们介绍一下,这是我的....
- 关于世界杯,给各位普及个知识。你们知道吗?
- 6个变态的C语言写的Hello World
- 6个变态的C语言写的Hello World
- 6个变态的C语言写的Hello World
- 6个变态的C语言写的Hello World
- 6个变态的C语言Hello World程序
- 6个变态的C语言写的Hello World
- ssh 远程 linux Ubuntu服务器
- 软件工程-面向对象方法学
- 一种可以避免数据迁移的分库分表scale-out扩容方式
- 函数的调用约定(__cdecl,__stdcall,__fastcall,__pascal)
- 2011新人-Java基础学习篇
- 给你们介绍个变态编程语言Brainfuck
- Android屏幕元素层次结构
- 性能测试技术的研究_关于性能测试业务场景设计的研究
- Java基础语法
- Ejb3注释进行映射
- 软考归来~分享一下历程和心得体会
- ActiveMQ分享(一)JMS简介 (转载)
- 敏捷开发中编写高质量Java代码(转)
- 使用jQuery图表插件Sparklines来开发一个实用的网站PV(page view)实时监控应用