Кіріспе
Эзотерикалық, минималистік бағдарламалау тілі. Brainfuck – 1993 жылы Урбан Мюллер жасаған эзотерикалық бағдарламалау тілі. Өте минималистік болуымен ерекшеленетін бұл тілде тек сегіз қарапайым команда, дерек көрсеткіші және нұсқау көрсеткіші бар. Brainfuck – «Тьюрингтің құмырасы» деп аталатын мысал: оны кез келген бағдарламаны жазу үшін пайдалануға болады, бірақ ол іс жүзінде тиімді емес, себебі Brainfuck абстракцияны өте аз ұсынады, сондықтан бағдарламалар тым ұзын немесе күрделі болып кетеді. Brainfuck толыққанды Тьюрингтік болғанымен, оның мақсаты практикалық қолдану емес, бағдарламашыларды сынау және көңіл көтеру. Brainfuck командаларды ең ұсақ қадамдарға бөлуді талап етеді. Тілдің атауы – «brainfuck» сленг терминіне сілтеме, ол адамның түсінік шегінен асып түсетіндей күрделі немесе ерекше нәрселерді білдіреді, себебі ол нақты бағдарламалық құрал жасау үшін емес, компьютерлік бағдарламалау шегін сынау үшін жасалған. Тіл атауындағы қатыгез сөздерге байланысты, brainfsck, branflakes, brainoof, brainfrick, BrainF және BF сияқты көптеген басқа атаулар қолданылады.
Brainfuck is an esoteric programming language created in 1993 by Urban Müller. Notable for its extreme minimalism, the language consists of only eight simple commands, a data pointer and an instruction pointer. Brainfuck is an example of a so called Turing tarpit: it can be used to write any program, but it is not practical to do so, because Brainfuck provides so little abstraction that the programs get very long or complicated. While Brainfuck is fully Turing complete, it is not intended for practical use, but to challenge and amuse programmers. Brainfuck requires one to break commands into microscopic steps. The language's name is a reference to the slang term brainfuck, which refers to things so complicated or unusual that they exceed the limits of one's understanding, as it was not meant or made for designing actual software but to challenge the boundaries of computer programming. Because the language's name contains profanity, many substitutes are used, such as brainfsck, branflakes, brainoof, brainfrick, BrainF, and BF.
Тарих
Мюллер Brainfuck-ті FALSE бағдарламалау тілі үшін 1024 байттық компилятордан шабыттандырылып, ең кішкентай мүмкін компиляторды жасау мақсатымен құрастырды. Мюллердің алғашқы компиляторы машина тілінде іске асырылды және 296 байт көлемді бинарлық файлға компиляцияланды. Ол 1993 жылы Brainfuck-тің алғашқы компиляторын Aminet желісіне жүктеді. Бағдарламамен бірге "Readme" файлы да келді, онда тіл туралы қысқаша мәлімет берілді және оқырманға "Осы тілде пайдалы нәрсе бағдарламалай алатын болса, кім бар?" деген сұрақ қойылды :) . Мюллер сонымен қатар интерпретатор және бірнеше мысалдар да қосты. Компилятордың екінші нұсқасы бар болғаны 240 байтты құрады.
P"
Екі I/O командасын қоспағанда, Brainfuck 1964 жылы Коррадо Бём жасаған P" формалды бағдарламалау тілінің шағын өзгеруі болып табылады, ол тікелей Тьюринг машинасының негізінде құрылған. Шындығында, Бём Brainfuck командаларына балама алты символды +, , <, >, [, ] қолданып, кез келген есептелетін функцияны есептеуге қажетті негізгі функциялардың әрқайсысы үшін нақты бағдарлама берді. Осылайша, алғашқы "Brainfuck" бағдарламалары Бёмнің 1964 жылғы мақаласында пайда болды және олар Тьюринг толықтығын дәлелдеу үшін жеткілікті болды.