Habr├й рдиреЗ Brainfuck рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рдкреЛрд╕реНрдЯреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╣рд┐рдд, рдореБрдЭреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА Brainfuck рджреБрднрд╛рд╖рд┐рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреБрдЫ рдЗрдЪреНрдЫрд╛ рдереАред рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╡реЗрджрдирд╛рдУрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рднрд╛рд╖рд╛ рдЦреБрдж рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рд╛рддреА рд╣реИ, рдмреНрд░реЗрдирдлрдХ рдкрд░ рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдФрд░ рдореИрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдлрд▓ рд░рд╣рд╛ред рдореИрдВ рддреБрд░рдВрдд рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░ рджреВрдВрдЧрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИ: рдпрд╣ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ
рд▓реВрдк рдФрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░реЗрдирдлрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдирдкреБрдЯ рд╣реИ) - рдпрджрд┐ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рддреЛ рдХрдорд╛рдВрдб "
[ ", "
] " рдФрд░ "
, "ред
рдкреНрд░рддрд┐рдмрдВрдз
рд╕реАрдорд╛рдУрдВ рдореЗрдВ рд╕реЗ (рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛), рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рджреЛ рд╣реИрдВ:
- рдиреНрдпреВрдирддрдо рд╕реЗрд▓ рдЗрдВрдбреЗрдХреНрд╕ (-1) рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдиреНрдпрдерд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХрд╛ рдЦрддрд░рд╛ рд╣реИ)ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ " << " рд▓рд┐рдЦрдирд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред
- рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 255 рд╣реИред
рдЧрддрд┐
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣
рдмреНрд░реЗрдирдлрдХ рдкрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рдХрд╛рдо
рдХреА рдЧрддрд┐ рдЦрд░рд╛рдм рд╣реИред
Obfuscated рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реНрд░реЛрдд рдХреЛрдб
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реА:
,[>,]>>>>++<<<<<[<]>[[[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-]>++++++++++[<++++>-]<+++<[>-<-]+>[<->[-]]<[->>>[<+<<+>>>-]<[>+<-]<<[>>>>>>>>>[>>->>]<<<<[<<<<]<<<<<-]>>>>>>>>>>>[>>>>]<+<[-]<<<<[<<<<]<<[<+<<+>>>-]<[>+<-]<<[>>>>>>>>>>>[>>>>]<<+<<<<[<<<<]<<<<<-]>>>>>>>>>[>>[-]>[-]<<<[>>+>+<<<-]>>>[<<<+>>>-]>]<<<<[<<<<]<<<<<]<<[<]>[[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-]>+++++++++[<+++++>-]<<[>-<-]+>[<->[-]]<[->>>[<+<<+>>>-]<[>+<-]<<[>>>>>>>>>[>>->>]<<<<[<<<<]<<<<<-]>>>>>>>>>>>[>>>>]<-<[-]<<<<[<<<<]<<[<+<<+>>>-]<[>+<-]<<[>>>>>>>>>>>[>>>>]<<+<<<<[<<<<]<<<<<-]>>>>>>>>>[>>[-]>[-]<<<[>>+>+<<<-]>>>[<<<+>>>-]>]<<<<[<<<<]<<<<<]<<[<]>[[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-]>+++++++++[<+++++>-]<+<[>-<-]+>[<->[-]]<[->>>[<+<<+>>>-]<[>+<-]<<[>>>>>>>>>[>>->>]<<<<[<<<<]<<<<<-]>>>>>>>>>>>[>>>>]<.<<<<<[<<<<]>>>>[>>[-]>[-]<<<[>>+>+<<<-]>>>[<<<+>>>-]>]<<<<[<<<<]<<<<<]<<[<]>[[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-]>++++++++++[<++++++>-]<<[>-<-]+>[<->[-]]<[->>>-<<<]<<[<]>[[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-]>++++++++++[<++++++>-]<++<[>-<-]+>[<->[-]]<[->>>+<<<]<<[<]>[-]>]
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдореИрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рд╛рдЗрдХрд┐рд▓ рдпрд╛ рд▓реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЗрди рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдХреЛ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред
рдЖрдк brainfuck.tk рдкрд░ Brainfuck рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+.+.>++++++++++.<.-.-.
рдЬреЛ рдирд┐рдореНрди рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
ABC
CBA
рд╕реНрд░реЛрдд рдХреЛрдб
рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░реВрдВрдЧрд╛:
- рдПрди - рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдмреНрд░реЗрдирдлрдХ рдкрд░ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рд╕реЗрд▓ рдХреА рдЧрд┐рдирддреА 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
- рдЗрдирдкреБрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдХреЛрдб рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
- рд╕реЗрд▓ (рдПрди + 4) - рд╡рд░реНрддрдорд╛рди рд╕реЗрд▓ рдХреЛ рд╕реВрдЪрдХред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 2 рд╣реИ (рдЗрдирдкреБрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрдВрдбреЗрдХреНрд╕ 0 рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд▓ рд╣реИ)ред рдЗрдирдкреБрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп - 1 - рд╕реВрдЪрдХрд╛рдВрдХ (-1) рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
- рдЗрдирдкреБрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрдЯрд╛ рд╕реЗрд▓ (N + 10) рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
- рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд░реВрдк рд╣реИ: 1 рд╕реЗрд▓ - рд╕реЗрд▓ рдирдВрдмрд░, рджреВрд╕рд░рд╛ рд╕реЗрд▓ - рдореВрд▓реНрдп, 3 рдФрд░ 4 рд╕реЗрд▓ - рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓ред
рдкреНрд░рдпреБрдХреНрдд рдкрд╛рддреНрд░реЛрдВ рдХреЗ ASCII рдХреЛрдб:
- + - рекрей
- - - 45
- ред - 46
- < - ремреж
- > - ремреи
рд╕реНрд░реЛрдд рдХреЛрдб:
,[>,] brainfuck >>>>++<<<< (N 4) <[<]> : N 0 [ [[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-] (N 1) >++++++++++[<++++>-]<+++ 43 (N 2) <[>-<-] 43 +>[<->[-]]<[- ""; : (N 1) >>>[<+<<+>>>-]<[>+<-]<< (N 4) (N 1) [>>>>>>>>>[>>->>]<<<<[<<<<]<<<<<-] >>>>>>>>>>>[>>>>]<+<[-] <<<<[<<<<]<<[<+<<+>>>-]<[>+<-]<< (N 4) (N 1) [>>>>>>>>>>>[>>>>]<<+<<<<[<<<<]<<<<<-] >>>>>>>>>[>>[-]>[-]<<<[>>+>+<<<-]>>>[<<<+>>>-]>] <<<<[<<<<]<<<<< (N 1) ] <<[<]> : (N 1) 0 [[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-] (N 1) >+++++++++[<+++++>-]< 45 (N 2) <[>-<-] 45 +>[<->[-]]<[- ""; : (N 1) >>>[<+<<+>>>-]<[>+<-]<< (N 4) (N 1) [>>>>>>>>>[>>->>]<<<<[<<<<]<<<<<-] >>>>>>>>>>>[>>>>]<-<[-] <<<<[<<<<]<<[<+<<+>>>-]<[>+<-]<< (N 4) (N 1) [>>>>>>>>>>>[>>>>]<<+<<<<[<<<<]<<<<<-] >>>>>>>>>[>>[-]>[-]<<<[>>+>+<<<-]>>>[<<<+>>>-]>] <<<<[<<<<]<<<<< (N 1) ] <<[<]> : (N 1) 0 [[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-] (N 1) >+++++++++[<+++++>-]<+ 46 (N 2) <[>-<-] 46 +>[<->[-]]<[- ""; : (N 1) >>>[<+<<+>>>-]<[>+<-]<< (N 4) (N 1) [>>>>>>>>>[>>->>]<<<<[<<<<]<<<<<-] >>>>>>>>>>>[>>>>]<.< <<<<[<<<<]>>>>[>>[-]>[-]<<<[>>+>+<<<-]>>>[<<<+>>>-]>] <<<<[<<<<]<<<<< (N 1) ] <<[<]> : (N 1) 0 [[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-] (N 1) >++++++++++[<++++++>-]< 60 (N 2) <[>-<-] 60 +>[<->[-]]<[- ""; : (N 1) >>>-<<< 1 ] <<[<]> : (N 1) 0 [[>]>+>+<<<[<]>-]+[>]>>-[<<<[<]>+[>]>>-] (N 1) >++++++++++[<++++++>-]<++ 62 (N 2) <[>-<-] 62 +>[<->[-]]<[- ""; : (N 1) >>>+<<< 1 ] <<[<]>[-]> ( ) ]
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдЪрд▓ рд░рд╣реЗ рдЪрдХреНрд░реЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ рдореЗрд░реЗ рдкрд╛рд╕ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЬреИрд╕реЗ рд╣реА рдореЗрд░реЗ рдкрд╛рд╕ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдЧрд╛, рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред
рдкреБрдирд╢реНрдЪBrainfuck рдкрд░ Brainfuck
рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП iSage
hablove рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред