Brainfuck — это совсем не ругательство, как может показаться с первого взгляда, ведь все мы можем перевести это слово с английского. Брейнфак — это один из очень экзотических и даже эзотерических языков программирования, применение которых бессмысленно, но которые имеют право на существование.
Всего за историю программирования было разработано около 9000 языков программирования! И это не шутка и не преувеличенное число! Сейчас иметь свой собственный язык программирования — это приличный тон успешной компании, поэтому их так много. Но Брейнфак — это один из языков, которые были придуманы без практического применения, а просто для того, чтобы что-то доказать или сделать. Конкретная цель этого языка — сделать с мозгами программиста то, что описывает его название.
Брейнфак
Брейнфак был разработан в 1993-м году программистом Urban Müller. С тех пор язык не приобрел никаких изменений и до сих пор сохранился в авторской версии. Он не имеет коммерческой ценности и не применяется в разработке. Везде, где его можно заметить, — это какая-то любительская организация небольшой бессмысленной программы каким-нибудь программистом-мазохистом.
Но несмотря на собственную бессмысленность, Брейнфак был создан не просто так. Авторская цель была не просто заставить программистов ломать свой мозг, а создать язык с самым «маленьким» компилятором в мире. Вес авторского компилятора был всего 240 байт, чуть позже другим программистам удалось уменьшить вес компилятора до 200 байт. Цель была достигнута — языка с еще меньшим компилятором не существует и по сей день. Но это не придает данному языку никакой профессиональной ценности.
Brainfuck как язык программирования
Брейнфак — это язык-парадокс. С одной стороны, в практике — он нигде не применяется из-за своеобразного синтаксиса и сложности в программировании, и любая, даже очень мелкая программа — это «взрыв мозга» для программиста; а с другой стороны, в теории — этот язык способен выполнять любую поставленную задачу.
Брейнфак состоит всего из 8 операторов:
«+» — увеличивает на единицу значение в текущей ячейке;
«-» — уменьшает на единицу значение ячейки;
«>» — сдвигает данные на одну 1 ячейку вправо;
«<» — сдвигает данные на 1 ячейку влево;
«[» — начинает цикл;
«]» — оканчивает цикл;
«.» — выводит значение ячейки в качестве символа ASCII;
«,» — читает символы потоков ввода и сохраняет их в ячейке как символ ASCII.
Все остальные символы, кроме перечисленных, попадают в «комментарии», поэтому не обрабатываются компилятором.
Примеры программ на Брейнфак
Программы на языке программирования Брейнфак имеют довольно интересный вид, поэтому не всегда понятны многим программистам. Вот несколько примеров простейших программ:
«+++++[-]». Этот скрипт увеличивает заданное значение на 5, а потом открыли цикл, который будет уменьшать значение до 0.
«>>>>++<<+>>+». Этот скрипт записывает 2 в ячейку №4, потом 1 записали в ячейку №2, а потом сложили 1 и 4.
«++++++++++[>++++ +++>++++++++++> +++>+<<<<-]>++.>+.+++++++..+++. >++.<<+++++++++++++++.>.+++.——. ——--.>+.>» А это одна из версий того, как написать известную всем начинающим программистам фразу: «Привет, мир!».
Кстати, «Привет, мир!» можно записать в нескольких вариантах, и это на одном и том же языке. Представьте, если захотите писать что-то сложнее, чем «Привет, мир!».
Итог
Брейнфак никогда не был конкурентом ни одному из существующих языков. Хотя, как уже говорилось, теоретически на нем можно написать любую программу. Многие программисты пытались понять и изучить этот язык — это реально. Но, по их же отзывам, изучать его для серьезного применения нет смысла, так как на написание чего-либо стоящего уйдет уйма времени и энергии. А если поразвлечься и потренировать собственные мозги, то это самое то!
Другое