Brainfuck (хочу разобраться)

Модератор: Модераторы разделов

Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Brainfuck

Сообщение Jasha »

Есть желание изучить brainfuck (jff). Подскажите необходимый набор софта и где его скачать. Плюс киньте хоть какую-то справку по этому языку (желательно на русском).
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: Brainfuck

Сообщение allez »

Спасибо сказали:
Аватара пользователя
Subj
Сообщения: 151
Статус: Useful
ОС: win

Re: Brainfuck

Сообщение Subj »

интерпретатор можно на коленке написать ))
Building better software with Ada
Спасибо сказали:
Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Re: Brainfuck

Сообщение Jasha »

нашел beef.
из документации нашлось "Настоящий Brainfuck №1,2,3"

Кто встречал более-менее серьёзную прогу на брейнфаке?
Спасибо сказали:
Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Re: Brainfuck

Сообщение Jasha »

Непонятки с ASCII-таблицей.
Есть прога с таким кодом(на брейнфаке)+., то есть она должна вывести первый символ из таблицы.
Она выводит чёрный закрашеный ромбик. А тут ромбик под четвёртым номером. Я чего-то не понимаю???
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Brainfuck

Сообщение watashiwa_daredeska »

Первые 32 символа таблицы ASCII -- управляющие и их начертание не определено, поэтому каждый извращается, как хочет. Выводите начиная с кода 33 (можно и 32, но это пробел -- не видно).
Спасибо сказали:
Flaming
Сообщения: 2579

Re: Brainfuck

Сообщение Flaming »

Jasha писал(а):
27.05.2009 19:58
Кто встречал более-менее серьёзную прогу на брейнфаке?

Есть такой глупый вопрос, а зачем???
Мало того, что писать замучаешься, дык ведь и тормозная прога получится вдобавок. Ведь язык интерпретируемый.
Наверное, самое бессмысленное занятие из всех возможных.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Brainfuck

Сообщение watashiwa_daredeska »

Flaming писал(а):
27.05.2009 21:11
тормозная прога получится вдобавок. Ведь язык интерпретируемый.
Язык отлично транслируется в C и компилируется.
Flaming писал(а):
27.05.2009 21:11
Наверное, самое бессмысленное занятие из всех возможных.
Одно из самых бессмысленных. С этим не поспоришь. Не для того язык придумывался.
Спасибо сказали:
Flaming
Сообщения: 2579

Re: Brainfuck

Сообщение Flaming »

watashiwa_darede... писал(а):
27.05.2009 21:17
Язык отлично транслируется в C и компилируется.

А вот об этом не подумал...
Но всё равно, не имеет ведь смысла, проще сразу на C писать.
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: Brainfuck

Сообщение Juliette »

Flaming
Ему название, наверное, нравится :)
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Brainfuck

Сообщение RasenHerz »

имхо, брейнфак ничего кроме теоритического интереса не представляет - писать на нем что-то серьезное невозможно. и думаю при желании можно придумать еще более "зубодробительный" язык =))
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Brainfuck

Сообщение NickLion »

Смотрел когда-то этот брейнфак - Машина Тьюринга. Ну, почти. А вот смысла особого не вижу в этом языке. Just for fun. Не более.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Brainfuck

Сообщение frp »

Brainfuck (англ. brain мозг + fuck) — один из известнейших эзотерических языков программирования, придуман Урбаном Мюллером (нем. Urban Mьller) в 1993 году для забавы.

Соответственно, не более, чем самый зубодробильный язык (соответствующее название даже). Кстати, если кому надо, напишу компилятор или интерпретатор для BrainFuck на C или на Assembler.
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux

Re: Brainfuck

Сообщение deninok »

(Jasha) писал(а):Кто встречал более-менее серьёзную прогу на брейнфаке?

На Brainfuck нет серьёзных прог. По той простой причине, что этот язык не разрабатывался как инструмент написания серьёзных прог, несмотря на то, что обладает тьюринговой полнотой.

Он относится к так называемым "эзотерическим языкам программирования" (посмотрите в Википедии), а они придумываются исключительно для развлечения, часто они пародируют «настоящие» или являются абсурдным воплощением «серьёзных» концепций программирования.
Спасибо сказали:
Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Re: Brainfuck

Сообщение Jasha »

А где можно скачать пакет bf? Это ведь компилятор?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Brainfuck

Сообщение Portnov »

Насчёт применения - слышал, что некоторые системы генетического программирования подопытные программы генерируют на нём. Именно ввиду простоты генерации и интерпретации кода, да и смешивать программы на нём оч. просто.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Brainfuck

Сообщение frp »

Я решил на нем написать арифметические операции. Сделал уже сложение, вычитание, умножение. А как сделать деление никак не пойму.
Спасибо сказали:
Аватара пользователя
Brainsburn
Сообщения: 950
Статус: /
ОС: Gentoo

Re: Brainfuck

Сообщение Brainsburn »

Portnov писал(а):
28.05.2009 13:34
Насчёт применения - слышал, что некоторые системы генетического программирования подопытные программы генерируют на нём. Именно ввиду простоты генерации и интерпретации кода, да и смешивать программы на нём оч. просто.

А что тут слышать? Это написано в википедии, которая на 1й позиции по запросу "braunfuck". Да и вобще все необходимое можно найти по первым 10ти ссылкам в гугле.
Спасибо сказали:
Аватара пользователя
Brainsburn
Сообщения: 950
Статус: /
ОС: Gentoo

Re: Brainfuck

Сообщение Brainsburn »

Jasha писал(а):
28.05.2009 13:00
А где можно скачать пакет bf? Это ведь компилятор?

Извращаться с компилированием? о_О Намного легче просто интерпретировать код. Ссылки где скачать компилятор или интерпретатор можно найти на первых 10ти результатах в гугле по запросу brainfuck. Например на хабре. А если ты не нашел, значит оно тебе и не надо.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Brainfuck

Сообщение frp »

Насчет деления теоретически придумал. Вычитаем из делимого делитель пока делимое больше делителя. Как это на практике реализовать придумаю.
Спасибо сказали:
MMouXe
Сообщения: 252

Re: Brainfuck

Сообщение MMouXe »

Наверно для целей выпендрежа перед сверстниками, я вот, мол, такой д'артаньян, умею на этой хрени написать хэлловорлд или простейший калькулятор :D
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Brainfuck

Сообщение NickLion »

Jasha писал(а):
28.05.2009 13:00
А где можно скачать пакет bf? Это ведь компилятор?

Если не хотите интерпретатор, можно сделать на чем угодно простенький конвертор в код C++ или ассемблера, а затем компилируйте. Заодно поймете лучше язык :)
Спасибо сказали:
Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Re: Brainfuck

Сообщение Jasha »

я ищу bf для debian 4 etch.
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Brainfuck

Сообщение RasenHerz »

Спасибо сказали:
Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Re: Brainfuck

Сообщение Jasha »

ыыыы....
объясните, что мне с этим файлом делать?
Спасибо сказали:
Flaming
Сообщения: 2579

Re: Brainfuck

Сообщение Flaming »

Спасибо сказали:
Аватара пользователя
Jasha
Сообщения: 492
Статус: ##LinuxUser##
ОС: Debian

Re: Brainfuck

Сообщение Jasha »

спс
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Brainfuck

Сообщение frp »

Если кому надо компилятор, то я написал на C++. Он превращает brainfuck-код в C, а затем компилирует gcc. Планирую в будущем сделать генерацию ассемблерного кода. Единственный недочет - никакого контроля ошибок, так что пишите внимательно. Файл переименовать в brainfuck.cpp (я переименовал в txt потому, что написало, что мне нельзя загружать такие файлы). Скомпилировать компилятор командой

Код: Выделить всё

g++ brainfuck.cpp -o brainfuck

Выполнять в таком формате:

Код: Выделить всё

brainfuck исходник бинарник

Я потом еще интерпретатор Brainfuck на C++ опубликую и разработаю интерпретатор Brainfuck на Brainfuck. Багрепорты писать в эту тему или на franchukrom@mail.ru
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Brainfuck

Сообщение frp »

Возник вопрос по Brainfuck.
Возможно ли сделать на Brainfuck такую штуку: в ячейке 1 есть число > 0, нужно сделать текущей ячейку с номером, который хранится в ячейке 1? Если да, то как?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Brainfuck

Сообщение NickLion »

Как вариант - дописывать справа от ячейки -1, а саму ячейку меньшать на 1 до тех пор, пока 0 не получится, и в конце сдвинуться на последнюю ячейку с -1.

Код: Выделить всё

5
4 -1
...
0 -1 -1 -1 -1 -1

Вот так.
Спасибо сказали: