Яндекс.Метрика
    Поиск по тегу

    brainfuck


    Найдено: 6 записей

    Песочница

    Prolog. Программируем автоматы

    Прочитав статью о Prolog, я решил написать небольшое дополнение к ней в виде 2 небольших задач.
    Вот они:
    1. Интерпретатор языка brainfuck
    2. Машина Тьюринга

    humour

    Электрический Мозговынос



    Другие ролики этого мозготеррориста тут.

    Песочница

    Пишем класс на php для интерпретации BrainLoller

    image
    Пример Brainloller кода

    BrainLoller — это визуальный диалект языка Brainfuck, в котором символьные команды заменяются на пиксели разных цветов, считываемые с изображения в формате *.png.
    Brainloller был придуман в 2005 году Lode Vandevenne.
    Цвета команд были выбраны как комбинации значений 0xFF и 0x80 для трех RGB компонент. В результате была получена следующая таблица команд:
    • + = 0x00FF00
    • — = 0x008000
    • > = 0xFF0000
    • < = 0x800000
    • [ = 0xFFFF00
    • ] = 0x808000
    • . = 0x0000FF
    • , = 0x000080

    В Brainloller добавлены также две дополнительные команды — 0x00FFFF (поворот указателя инструкций против часовой стрелки) и 0x008080 (поворот по часовой). Таким образом, “код” может записываться не в одну строку пикселей, а в двухмерное изображение. Перед началом выполения программы указатель инструкций находится в верхнем левом пикселе и направлен вправо. Изображение обрабатывается попиксельно, после каждой команды Brainfuck указательно инструкций сдвигается на один пиксель в том направлении, в котором он указывает. Выполнение программы заканчивается, как только указатель инструкций выходит за пределы изображения. (источник)

    К сожалению, исходный набор инструментов для работы с Brainloller был утерян и мы попробуем в этой статье восполнить пробел)

    Реклама

    Археология в языках программирования

    Сегодня исполняется четыре года энциклопедии языков программирования Прогопедия — проекту, в котором я участвую уже почти два года.

    К юбилею Прогопедия достигла приятной округлости не только дат, но и цифр: сейчас в ней описано ровно 100 языков! Сотым языком стал гастрономический Chef. Нормальные мейнстрим-языки в энциклопедии тоже есть, их даже больше, чем эзотерических. Но лично мне интереснее писать о последних, чем я и занимаюсь, в частности, на Хабре — ведь стать экспертом по Hanoi Love гораздо быстрее и проще, чем по Haskell ;-)

    Вообще задача даже поверхностного изучения языков становится нетривиальной, как только они уходят в сторону от мейнстрима. Умирают сайты, посвященные языкам, и даже их зеркала и архивы, теряются во мраке времен авторские реализации, от когда-то используемого языка остаются только строчки в каком-нибудь словаре. Бывают и совсем курьезные случаи.

    Однажды я взялась наводить порядок в моей любимой статье про Brainfuck и его диалекты. Мне на глаза попалась вопиюще незавершенная статья о BrainSub, и я отправилась на поиски информации об этом диалекте. Стоящих внимания упоминаний нашлось целых два: наше на Прогопедии и удаленная страница на Esolangs.org. В обсуждении к ней выяснилось, что это был великолепный диалект Brainfuck — написанный на ассемблере, с библиотеками и руководством пользователя размером 175 Кб. Автор намеревался убрать с BrainSub клеймо «эзотерический» и использовать его для обучения и даже написания некрупных приложений, и для начала написал о нем статью в Википедии. Разумеется, ничего хорошего из этого не вышло — редакторы мигом классифицировали язык как «незначимый» и отправили его в Esolangs, где ему и место. За следующий год языком заинтересовалось целых два человека, и автор понял, что больше так продолжаться не может. Он накатал гневное послание ничтожным людишкам, которые до сих пор не оценили по достоинству его шедевр, мимоходом прошелся по другим эзо-языкам — жалким поделкам, описанным в два абзаца и достойным не более 10 минут внимания — и подчистую удалил статью. Напоследок он сообщил, что подождет, пока его оценят и напишут о нем свою статью, желательно прямо в Википедию!

    Нет, я решительно не понимаю людей, которые уничтожают свою работу из-за того, что «каждый день, в который его работа остается незамеченной, ранит его самооценку», не сделав ничего для ее, работы, популяризации. Максимум, который доступен моему пониманию — это люди, которые просто перестают поддерживать сайт языка, и он умирает своей смертью, как, например, Omgrofl. Но им хотя бы можно написать и спросить, не осталось ли у них интерпретатора (обычно не осталось, но человек все равно радуется интересу).

    Бывают и приятные исключения. Например, недавно автор Braincopter повторно выложил в открытый доступ исходники, которые до того долгое время считались утерянными.

    Да, определенно в этом есть что-то от археологии. И знаете что? Мне нравится.