BrainFuck
Материал из Lurkmore.
|   | В эту статью нужно добавить как можно больше косплееров-лесбиянок. Также сюда можно добавить интересные факты, картинки и прочие кошерные вещи.  | 
BrainFuck — один из эзотерических языков программирования, язык-головоломка. Тем не менее, на нём вполне успешно пишут программы. Целью его создателя был тьюринг-полный язык с компилятором минимального размера.
Содержание | 
[править] Синтаксис
Синтаксис брейнфака состоит из команд сдвига читающей головки влево-вправо, уменьшения-увеличения текущего значения на единицу, чтения-записи и организации while-цикла. Всего — восемь команд.
[править] Хелловорлд
Хелловорлд на брейнфаке:
++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.
Бессмысленный набор символов становится вполне чуть более понятным после ознакомления  с коротким описанием синтаксиса (или  здесь). Программы пишутся достаточно легко, но недостаток выразительных средств даёт о себе знать.
[править] Употребление
Как самый известный из эзотерических языков программирования BrainFuck стал (нередко ошибочно, т.к. создавался для других целей, а для списка ниже есть примеры более целевых языков) синонимом
- Нечитаемости программ
 - Неудобства или непродуманности синтаксиса
 
| 
 Перл — это тот же brainfuck, только автор его, почему-то, воспринимает серьезно. Может, конечно, это он так издевается, и тащится от того, что мир подхватил его версию brainfuck и строчит на нем да фанатеет...  | 
| — http://www.linux.org.ru/jump-message.jsp?msgid=2068951&cid=2070791 | 
- Неудобства инструмента разработки
 
| 
 — Нормальному программисту не важно на чем и под какую платформу писать...  | 
| — http://www.linux.org.ru/jump-message.jsp?msgid=2464082&cid=2469806 | 
- Мазохизма
 
| 
 —...если вы настоящий мазохист-извращенец, если вам нравится преодолевать непреодолимое и выполнять невыполнимое, то ваш выбор — это BAT-скрипты.  | 
| — http://90h.livejournal.com/23564.html?thread=84236 | 
- Примера, чем чревато излишнее упрощение
 
| 
 — В российских школах будут преподавать программирование на Delphi и C++Builder.  | 
| — http://www.linux.org.ru/jump-message.jsp?msgid=1844700&cid=1846185 | 
- Мозгокрутных логических задач, не имеющих практической ценности
 
| 
 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.  | 
| — http://forum.bobr.by/viewtopic.php?f=1&t=568&st=0&sk=t&sd=a&sid=65f4246f6d6821ea1cd0f7962b8c4ca6 | 
- Насмешки при сравнении языков программирования
 
| 
 — Пых-пых что-то достал, хочется чего-то нового, с большими возможностями... 
...  | 
| — http://www.linux.org.ru/jump-message.jsp?msgid=1844700&cid=1846185 | 
[править] Кроме того
- Из-за практической бесполезности трансляторы брейнфака, байндинги для распространённых библиотек, модули для Apache и т. п. не получают распространения.
 - Из-за простоты языка писать их сравнительно легко.
 - Что делает написание подобных вещей полезным для тренировки и самоутверждения.
 - Существует ряд Brainfuck-based языков программирования, например, любители Терри Пратчетта оценят язык Ook
 - Поговаривают, что для bf был спаян процессор. И не врут.
 - Существует язык программирования Malbolge, который гораздо страшнее Brainfuck’а. Настолько, что первую работающую программу создали только через 2 года после выпуска интерпретатора Malbolge.
 
[править] Ссылки
[править] См. также
- Perl
 - LISP
 - Годная статья про эзотерические языки программирования - тысячи их и покоширней BrainFuck'а! Тут же железная Brainfuck-машина.
 - Ivory tower
 - Годная статья про Brainfuck
 - Сайт про Brainfuck
 - Всякие сырцы на BrainFuck'ке.
 - Доска почета адептов BrainFuck'а
 
| Промышленные | 1С • C# • C++ • JavaScript (Ajax) • Pascal • Perl • PHP • Pure C • Python • ABAP • Ассемблер • Васик • Жаба | 
| Эзотерические | BrainFuck • Erlang • Forth • Haskell • LISP • Prolog • Tcl • TeX | 
| Профессии | Быдлокодер • Программист • Тестировщик • Хакер • Хеллоуворлдщик | 
| Методы и стили | Reverse Engineering • Выстрелить себе в ногу • Грязный хак • Индусский код • Костыль • Метод научного тыка • Свистелки и перделки | 
| Прочее | ++i + ++i • My other car • Foobar • Regexp • Resign patterns • ЕГГОГ • %s • Тест Тьюринга • Рекурсия • Умение разбираться в чужом коде • Фаза Луны | 

