
Рассказываю о том, как писал интерпретатор языка Brainfuck на Python (с показом исходного кода и его объяснения).
Эзотерический язык программирования
Рассказываю о том, как писал интерпретатор языка Brainfuck на Python (с показом исходного кода и его объяснения).
Дорогой Хабр, через два месяца мне предстоит организовать и провести фестиваль компьютерного искусства, поэтому я уже сейчас собираю информацию про необычные проявления демосцены, на которые обычно никто не обращает внимания. Язык программирования для генеративной музыки ByteBeat — это как раз то, что я ищу.
Как вы догадались, глядя на заглавную картинку, сейчас будет нечто, очень похожее на язык программирования Lisp. Все примеры рабочие, их можно запустить прямо в браузере.
Brainfuck — очень глупый язык. Там есть лента из 30к ячеек, по байту каждая. Команды bfc это:
<
и >
)+
и -
).
и ,
)[
и ]
это начало и конец цикла соответственноПрограммировать на bfc сложно. Но, как известно, любую проблему можно решить добавлением слоя абстракции (кроме проблемы большого количества абстракций).
Александр Н. (37 лет) очень внимателен к соблюдению правил и выполнению общественных норм. Если кто-то нарушает правила дорожного движения или паркуется на газоне, Александр буквально взрывается, делает замечания, кричит. Несоблюдение правил моментально заводит его, выводит из себя, он переходит на агрессивный тон, демонстрирует нетерпимость. Ольга С. (29 лет) настолько же сильно нетерпима к беспорядку, не переносит, когда люди не убирают за собой посуду, дети разбрасывают игрушки, а муж не кладет на место пульт. При этом Ольгу совсем не «триггерит» нарушение правил и общественных норм, а Александр терпим к немытой посуде. А вот Олег К. (41 год) не выносит «выскочек» - тех, кто что-то из себя возомнили, хотя у них нет ни докторских степеней, как у Олега, ни диссертаций. А «выскочка» вот пользуется популярностью, люди за ним следят и читают, смотрят YouTube-канал, хотя этот «выскочка» полный профан в своем вопросе! То ли дело сам Олег! У Александра, Ольги и Олега (имена изменены, но случаи эти реальны – из моей частной психологической практики) разные триггеры и ситуации, которые их выводят из себя, но у них есть нечто общее. Я приглашаю вас разобраться в данном вопросе и выяснить, почему именно ЭТО триггерит вас, а другое – нет.
Триггер - спусковой крючок, тот факт/событие/поведение/человек – который вызывает бурную эмоциональную реакцию. Например, Александр Н. осуждает убийц и воров, он считает их плохими людьми, заслуживающими наказания. Но они его не триггерят. Сильно бесят, до желания бить их и обзывать именно те, кто нарушает нормы общественного порядка. Это – его триггер. Странно, да? Ведь убийца гораздо хуже того, кто припарковался на газоне...
Нужно провести разведку боем
Brainfuck — язык программирования, созданный с одной целью: написать для него интерпретатор. Их было написано так много, что даже не буду давать на них ссылки. В этой статье на пальцах объясняется простой, но эффективный способ его оптимизации.
Ваш аккаунт