Skip to content

boobusy/go-brainfuck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

go-brainfuck

brainfuck 语言的golang实现.


Use:

  • in
go run gobrainfuck.go hello.bf
  • out:
Hello World!

doc:

> 增加数据指针 (使其指向当前右边内存单元).
< 减少数据指针(使其指向当前左边内存单元).
+ 对当前内存单元加 1
- 对当前内存单元减 1
. 输出当内存单元
, 接受一个字节的输入,将其放到当前数据指针指向的内存单元
[ 如果当前数据指针指向的单元,值为非0, 进入循环,执行紧靠 [ 后面的指令;否则,向前跳转到与此 [ 匹配的 ]     之后开始执行
] 如果当前数据指针指向的单元,值为非0,向后跳转,回到与此 ] 匹配的 [ 后面执行, 否则,正常流程,继续向下执行
    > 右
    < 左
    + 上
    - 下
    [ 始
    ] 终
    . 写
    , 读

        遇到什么都没写的格子就当里面写了 0 <br>
        右:向右移动一个格子。嗯你盯着它看就行了,什么都不用做 <br>
        左:向左移动一个格子 <br>
        上:给格子里的数字加上 1,擦掉原来的数字再写回去。现在你知道为什么要用铅笔了吧,少年! <br>
        下:给格子里的数字减去 1 <br>
        始:开始重复「始……终」之间的指令,直到你读到「始」之前盯着的那个格子里的数字变成 0 <br>         为止。(什么?那个格子里已经是负数了?……不要这么没有下限好不好) <br>
        终:如果当前格子里的数字为 0,就跳过,否则回头到「始」那里 <br>
        写:查当前格子里的数字在 ASCII 表上对应的字母,把它写下来(不,别写在格子里,就写在你买来一直立志想用但是没有用的日记本上吧) <br>
        读:随便想一个英文字母,查表找到它对应的数字,写到当前格子里 <br>

About

brainfuck 语言的golang实现.

Resources

Stars

Watchers

Forks