Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
brainfucker
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Taddeüs Kroes
brainfucker
Commits
7b66f091
Commit
7b66f091
authored
Jan 08, 2015
by
Taddeüs Kroes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed undocumented Hello World program and added rot13 program
parent
ed29d7fd
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
69 additions
and
42 deletions
+69
-42
hello-verbose.b
hello-verbose.b
+0
-41
hello.b
hello.b
+41
-1
rot13.b
rot13.b
+28
-0
No files found.
hello-verbose.b
deleted
100644 → 0
View file @
ed29d7fd
[ This program prints "Hello World!" and a newline to the screen, its
length is 106 active command characters [it is not the shortest.]
This loop is a "comment loop", it's a simple way of adding a comment
to a BF program such that you don't have to worry about any command
characters. Any ".", ",", "+", "-", "<" and ">" characters are simply
ignored, the "[" and "]" characters just have to be balanced.
]
+++++
+++
Set Cell #0 to 8
[
>
++++
Add 4 to Cell #1; this will always set Cell #1 to 4
[
as the cell will be cleared by the loop
>
++
Add 2 to Cell #2
>
+++
Add 3 to Cell #3
>
+++
Add 3 to Cell #4
>
+
Add 1 to Cell #5
<<<<
-
Decrement the loop counter in Cell #1
]
Loop till Cell #1 is zero; number of iterations is 4
>
+
Add 1 to Cell #2
>
+
Add 1 to Cell #3
>
-
Subtract 1 from Cell #4
>>
+
Add 1 to Cell #6
[
<
]
Move back to the first zero cell you find; this will
be Cell #1 which was cleared by the previous loop
<
-
Decrement the loop Counter in Cell #0
]
Loop till Cell #0 is zero; number of iterations is 8
The result of this is:
Cell No : 0 1 2 3 4 5 6
Contents: 0 0 72 104 88 32 8
Pointer : ^
>>
.
Cell #2 has value 72 which is 'H'
>
---.
Subtract 3 from Cell #3 to get 101 which is 'e'
+++++++..+++.
Likewise for 'llo' from Cell #3
>>
.
Cell #5 is 32 for the space
<
-.
Subtract 1 from Cell #4 for 87 to give a 'W'
<
.
Cell #3 was set to 'o' from the end of 'Hello'
+++.------.--------.
Cell #3 for 'rl' and 'd'
>>
+.
Add 1 to Cell #5 gives us an exclamation point
>
++.
And finally a newline from Cell #6
hello.b
View file @
7b66f091
++++++++
[
>
++++
[
>
++
>
+++
>
+++
>
+
<<<<
-
]
>
+
>
+
>
-
>>
+
[
<
]
<
-
]
>>
.
>
---.+++++++..+++.
>>
.
<
-.
<
.+++.------.--------.
>>
+.
>
++.
[ This program prints "Hello World!" and a newline to the screen, its
length is 106 active command characters [it is not the shortest.]
This loop is a "comment loop", it's a simple way of adding a comment
to a BF program such that you don't have to worry about any command
characters. Any ".", ",", "+", "-", "<" and ">" characters are simply
ignored, the "[" and "]" characters just have to be balanced.
]
+++++
+++
Set Cell #0 to 8
[
>
++++
Add 4 to Cell #1; this will always set Cell #1 to 4
[
as the cell will be cleared by the loop
>
++
Add 2 to Cell #2
>
+++
Add 3 to Cell #3
>
+++
Add 3 to Cell #4
>
+
Add 1 to Cell #5
<<<<
-
Decrement the loop counter in Cell #1
]
Loop till Cell #1 is zero; number of iterations is 4
>
+
Add 1 to Cell #2
>
+
Add 1 to Cell #3
>
-
Subtract 1 from Cell #4
>>
+
Add 1 to Cell #6
[
<
]
Move back to the first zero cell you find; this will
be Cell #1 which was cleared by the previous loop
<
-
Decrement the loop Counter in Cell #0
]
Loop till Cell #0 is zero; number of iterations is 8
The result of this is:
Cell No : 0 1 2 3 4 5 6
Contents: 0 0 72 104 88 32 8
Pointer : ^
>>
.
Cell #2 has value 72 which is 'H'
>
---.
Subtract 3 from Cell #3 to get 101 which is 'e'
+++++++..+++.
Likewise for 'llo' from Cell #3
>>
.
Cell #5 is 32 for the space
<
-.
Subtract 1 from Cell #4 for 87 to give a 'W'
<
.
Cell #3 was set to 'o' from the end of 'Hello'
+++.------.--------.
Cell #3 for 'rl' and 'd'
>>
+.
Add 1 to Cell #5 gives us an exclamation point
>
++.
And finally a newline from Cell #6
rot13.b
0 → 100644
View file @
7b66f091
-,+
[
Read first character and start outer character reading loop
-
[
Skip forward if character is 0
>>
++++
[
>
++++++++
<
-
]
Set up divisor (32) for division loop
(MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero)
<
+
<
-
[
Set up dividend (x minus 1) and enter division loop
>
+
>
+
>
-
[
>>>
]
Increase copy and remainder / reduce divisor / Normal case: skip forward
<
[[
>
+
<
-
]
>>
+
>
]
Special case: move remainder back to divisor and increase quotient
<<<<<
-
Decrement dividend
]
End division loop
]
>>>
[
-
]
+
End skip loop; zero former divisor and reuse space for a flag
>
--
[
-
[
<
-
>
+++
[
-
]]]
<
[
Zero that flag unless quotient was 2 or 3; zero quotient; check flag
++++++++++++
<
[
If flag then set up divisor (13) for second division loop
(MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero)
>
-
[
>
+
>>
]
Reduce divisor; Normal case: increase remainder
>
[
+
[
<
+
>
-
]
>
+
>>
]
Special case: increase remainder / move it back to divisor / increase quotient
<<<<<
-
Decrease dividend
]
End division loop
>>
[
<
+
>
-
]
Add remainder back to divisor to get a useful 13
>
[
Skip forward if quotient was 0
-
[
Decrement quotient and skip forward if quotient was 1
-
<<
[
-
]
>>
Zero quotient and divisor if quotient was 2
]
<<
[
<<
-
>>
-
]
>>
Zero divisor and subtract 13 from copy if quotient was 1
]
<<
[
<<
+
>>
-
]
Zero divisor and add 13 to copy if quotient was 0
]
End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3)
<
[
-
]
Clear remainder from first division if second division was skipped
<
.
[
-
]
Output ROT13ed character from copy and clear it
<
-,+
Read next character
]
End character reading loop
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment