打开/关闭搜索
搜索
打开/关闭菜单
12
174
16
438
迷雾wiki
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
上传文件
切换首选项菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“Brainfuck/Ook/shortOok”的源代码
来自迷雾wiki
分享此页面
查看
阅读
查看源代码
查看历史
associated-pages
页面
讨论
更多操作
←
Brainfuck/Ook/shortOok
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{首页}} == 基本介绍 == Brainfuck是一种极简的编程语言,以其极度简化的语法和难以阅读的代码而闻名。它是深奥编程语言(Esoteric programming language,简称Esolang)的代表作之一。尽管名字看起来有些粗俗,但这个名字恰好反映了这种语言的特点——阅读和编写它的代码常常会让人感到"脑痛"。 Brainfuck由Urban Müller在1993年创建。创造这门语言的初衷是设计一个尽可能小的编译器。当时Müller成功地为Amiga操作系统创建了一个只有240字节大小的Brainfuck编译器(第二版)。 Brainfuck的设计思想是遵循"图灵完备性(Turing completeness)"原则,以最小的概念实现一种功能完整的编程语言。尽管语法极度简化,它仍然具有与任何其他编程语言相同的计算能力。 == 语言特点 == Brainfuck语言有以下几个显著特点: * 极简语法:整个语言只有8个指令,由8个符号表示 * 图灵完备:尽管简单,但它理论上可以完成任何计算任务 * 基于指针:程序操作一个线性内存带和一个可移动的指针 * 难以阅读:代码极度晦涩,难以理解和维护 * 极小编译器:最小的编译器实现可以非常小(数百字节) == 指令详解 == Brainfuck语言仅由以下8个指令组成: {| class="wikitable" !字符 !含义 |- |> |指针加一 |- |< |指针减一 |- | + |指针所指字节的值加一 |- | - |指针所指字节的值减一 |- |. |输出指针所指字节内容(ASCII码) |- |, |向指针所指的字节输入内容(ASCII码) |- |[ |若指针所指字节的值为零,则向后跳转,跳转到其对应的<code>]</code>的下一个指令处 |- |] |若指针所指字节的值不为零,则向前跳转,跳转到其对应的<code>[</code>的下一个指令处 |} == 示例代码 == === Hello World程序 === 以下是一个打印"Hello World!"的Brainfuck程序:<syntaxhighlight lang="brainfuck"> ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. </syntaxhighlight>这段代码通过操作内存单元的值,最终输出对应的ASCII字符。 === 计数器 === 一个简单的从1数到5的程序:<syntaxhighlight lang="brainfuck"> +++++[>+<-]>[>.+<] </syntaxhighlight>这段代码首先在第一个单元格设置循环次数5,然后每次循环输出并增加第二个单元格的值。 == 常用工具 == [https://ctf.bugku.com/tool/brainfuck BF,ook加解密]
返回
Brainfuck/Ook/shortOok
。