BrainFuck

В эту статью нужно добавить как можно больше разных эзотерических символов и слов. Также сюда можно добавить интересные факты, картинки и прочие кошерные вещи. « In Soviet Russia brain fucks YOU » <ssd.meister> Когда я сказал студентам принести лабу по алгоритмизации на любом языке программирования, я не подозревал, что на потоке найдётся мудак, который напишет её на.. BRAINFUCK'е! 360086 BrainFuck (не путать с Mindfuck) — один из эзотерических языков программирования, язык-головоломка. Тем не менее, на нём вполне успешно пишут программы. Целью его создателя был тьюринг-полный язык с компилятором минимального размера. Синтаксис Синтаксис брейнфака состоит из команд сдвига исполнительной каретки влево-вправо, уменьшения-увеличения текущего значения на единицу, чтения-записи и организации while-цикла. Всего — восемь команд. Хелловорлд Хелловорлд на брейнфаке: >--[+++++++<---->>-->+>+>+<<<<] <.>++++[-<++++<++>>>->--<<]>>-.>--..>+.<<<.<<-.>>+>->>.+++[.<]<<++. Бессмысленный набор символов становится чуть более понятным после ознакомления с коротким описанием синтаксиса здесь или здесь. Программы пишутся достаточно легко, но недостаток выразительных средств даёт о себе знать. Для знающих инглиш выучить мозгоеблю за час. Обфускация В действительности те, кто пишут программы на Brainfuck, специально игнорируют отступы и пишут все в одну строку, чтобы еще больше запутать исходный код программы и напугать непосвященных. Например, нечитабельный код: ,>,>,<<[>+<[<+>-]].>.>. можно разбить на отдельные инструкции и проставить табуляции в отдельных блоках: ,>,>, << [ >+< [ <+>- ] ] .>.>. Согласитесь, из непонятного «шоыэтазанахуй», код становится вполне читабельным и доступным для понимания. А если учесть, что в Brainfuck используется только 8 символов-команд — можно еще комментариев налепить, в любой удобной для вас форме: ,>,>, // считать символ, перейти к следующей ячейке, считать следующий символ... << // вернуться на 2 ячейки назад [ // открыть цикл >+< // ползем вправо, увеличиваем тамошнюю ячейку на 1, возвращаемся обратно [ // еще один цикл <+>- // влево плюс, обратно минус ] // вернуться в начало цикла "еще один цикл" ] // вернуться в начало цикла "открыть цикл" .>.>. // вывод Употребление Как самый известный из эзотерических языков программирования, BrainFuck стал (нередко ошибочно, так как создавался для других целей, а для списка ниже есть примеры более целевых языков) синонимом Нечитаемости программ Неудобства или непродуманности синтаксиса Перл — это тот же brainfuck, только автор его, почему-то, воспринимает серьезно. Может, конечно, это он так издевается, и тащится от того, что мир подхватил его версию brainfuck и строчит на нем да фанатеет... ЛОР Неудобства инструмента разработки — Нормальному программисту не важно на чем и под какую платформу писать... — Брейнфак под дос. ЛОР Мазохизма —...если вы настоящий мазохист-извращенец, если вам нравится преодолевать непреодолимое и выполнять невыполнимое, то ваш выбор — это BAT-скрипты. — С машиной Тьюринга (или с BrainFuck, что почти то же самое) не сравнить... ЖЖ Примера, чем чревато излишнее упрощение — В российских школах будут преподавать программирование на Delphi и C++Builder. — ...слава богу, хоть не лисп... — Надо вообще на COBOL'е или на FORTRAN'е учить. Хотя, самый простой, конечно Brainfuck. ЛОР Мозгокрутных логических задач, не имеющих практической ценности Brainfuck. Задача для детей дошкольного возраста. Забудь то, чему тебя учили в школе. Детишки дошколята решают ее в среднем за 3 минуты. 8809=6; 7111=0; 2172=0; 6666=4; 1111=0; 3213=0; 7662=2; 9312=1; 0000=4; 2222=0; 3333=0; 5555=0; 8193=3; 8096=5; 7777=0; 9999=4; 7756=1; 6855=3; 9881=5; 5531=0. 2581=? (спойлер: 2. Ответ — это число замкнутых кружочков и овальчиков в начертании числа) forum.bobr.by Насмешки при сравнении языков программирования — Пых-пых что-то достал, хочется чего-то нового, с большими возможностями... … — Ну автору сабжа же нужно «что-то новое, с большими возможностями». Вот brainfuck ему как раз и подойдет. Утрамбует его моск немножко. Научиться яснее выражать свои мысли, и мы ему быстрее сможем помочь. ЛОР Кроме того Из-за практической бесполезности трансляторы брейнфака, байндинги для распространённых библиотек, модули для Apache и т. п. не получают распространения. Тем не менее, реально автоматически перекомпилировать содержимое нормального языка программирования в сабж. Из-за простоты языка писать их сравнительно легко. Что делает написание подобных вещей полезным для тренировки и самоутверждения. Для настоящих ценителей имеются реализации сабжа на сабже. Они даже соревнуются в скорости исполнения, что особенно доставляет, учитывая стремящуюся к нулю практическую полезность языка. Существует ряд Brainfuck-based языков программирования, например, любители Терри Пратчетта оценят язык Ook Поговаривают, что для bf был спаян целый компьютер с встроенным интерпретатором bf. И не врут. Существует язык программирования Malbolge, который гораздо страшнее Brainfuck’а. Настолько, что первую работающую программу создали только через 2 года после выпуска интерпретатора Malbolge, да и то с помощью другой программы. BrainFuck — жанр гуро. Так-то. См. также Perl LISP Regexp Ссылки Реализация BrainFuck для Ардуино. Мигание сетодиодом и прочие ардуинофенечки. Особые лулзы от некоторых комментов ардуиноводов. Интерпретатор языка программирования Brainfuck на JavaScript (v0.1) Есть ли практическая польза от языка Brainfuck? Годная статья про эзотерические языки программирования — тысячи их и покоширней BrainFuck'а! Тут же железная Brainfuck-машина. Ivory tower Всякие сырцы на BrainFuck'ке. Доска почета адептов BrainFuck'а Как создать компилятор BrainFuck с блэкджек…^W с оптимизацией и кроссплатформенностью Интерпретатор Brainfuck на Arduino с экраном и кнопками Данный текст был спасен из загнивающей Педивикии. Пруфлинк: Brainfuck. Любой программист без словаря поймёт, что такое BrainFuck Языки программирования Промышленные: 1С • BAT • C# • C • C++ • Java • JavaScript (AJAX) • Pascal • Perl • PHP • Python • Ruby • ABAP • Ассемблер • Васик • Фортран Эзотерические: BrainFuck • Erlang • Forth • Haskell • LISP (My other car) • Prolog • Tcl • TeX Профессии Быдлокодер • Программист • Тестировщик • Хакер • Хеллоуворлдщик Методы и стили Reverse Engineering • Анти-паттерн • Выстрелить себе в ногу • Грязный хак • Код (индусский) • Костыль • Метод научного тыка • Помолясь • Свистелки и перделки Прочее ++i + ++i • Deadline • %s • 640 килобайт • CMS • Dummy mode • ЕГГОГ • Foobar • God is real, unless explicitly declared as integer • GOTO • Ifconfig • KISS • RegExp • SICP • sql.ru • Xyzzy • Дискета • Инжалид дежице • КОИ-8 • Лог • Ман • Рекурсия • СУБД • Тест Тьюринга • Умение разбираться в чужом коде • Фаза Луны • Фатальный недостаток BrainFuck — это не баг, это фича! Мета DRM (SecuROM • StarForce) • Баг • Бот (Автоответчик) • Ботнет • Варез • Глюк • Гуй • Донат • Копирайт (By design) • Лог • Нюк • Рут (Не работай под рутом) • Спортивное программирование Фичи 12309 • BSOD • Cookies • Embrace, extend and extinguish • FL Studio • Sheep.exe • Winlogon.exe • Бубен • Защита от дурака • Костыль • Машинный перевод • Пасхальные яйца • Свистелки и перделки • См. рис. 1 • Съешь ещё этих мягких французских булок • Таблэтка Вредоносное Винлок • Звонилка • Китайские пингвины • Пиксель смерти • Троян • Червь Морриса Компании 1С • Apple • Denuvo • Google • Microsoft • SAP • Яндекс Движения 8-bit • Open source (Красноглазики • Линуксоиды) • Вирусная сцена • Даунгрейд • Демосцена • Моддинг Офис 3DS MAX • GIMP • GNU Emacs • Movie Maker • MS Paint • OpenOffice • PowerPoint • vi • Word • Блокнот • Фотошоп ОС Android • BSD • DOS • MenuetOS • ReactOS • Windows (Phone 7 • Phone 8 • Seven • Vista) / Маздай • Линукс • Русская ОС • Фантом ОС Браузеры Internet Explorer • Опера • Тормозилла (Огнелис • Lolifox) • Хром Интернет Flash • I2P • Low Orbit Ion Cannon • Tor • Tunatic • Чат−клиенты (Miranda • QIP • Skype • Аська • Жаббер) Разработка BrainFuck • C • C++ • Java • Haskell • Ассемблер Люди LovinGOD • Балмер • Гейтс • Генерал Фейлор • Джобс • Митник • Поттеринг • де Раадт • Спольски • Столлман • Торвальдс • Шахиджанян Костыли Cygwin • PunkBuster • T9 • Wine • Wishmaster • Антивирусы • Хакинтош Команды ^H • ^W • Alt+F4 • Ctrl+Alt+Del • man • /me • /quit • rm -rf