Building a Brainfuck translator in TurboAssembler. To begin with, we will write an interpreter in a high-level language, for example, in Pascal. Let's write a program that outputs a character whose ascii-code corresponds to the number of + Therefore, we only need the bf-commands + and . var data_mem: array[1..10] of integer; // data array command_mem: string; // command array i: integer; // index of command array j: integer; // index of data array begin j:=1; readln(command_mem); for i:=1 to…
Brainfuck — язык программирования, созданный с одной целью: написать для него интерпретатор. Их было написано так много, что даже не буду давать на них ссылки. В этой статье на пальцах объясняется простой, но эффективный способ его оптимизации. Читать дальше →
Скорее всего, о языке Brainfuck слышали многие, кто изучал программирование. Из этих многих, некоторые реализовывали интерпретатор этого языка. Я решил собрать интерпретатор на базе Arduino, чтобы можно было таскать его с собой и набивать в дороге простейшие программки. Постой, скажете вы, но на смартфонах давно есть интерпретаторы на любой вкус, на кой нужно таскать с собой такую коробку? Because it's fucking awesome! Читать дальше →
Часть I Часть II Часть III Пишем brainfuck на TurboAssembler'e. Добавим вывод массива data_arr («ленту» машины Тьюринга) на экран. Напишем программу, выводящую на экран элементы произвольного массива посредством функции 09h прерывания 21h. .model tiny ; ascii-decoder.asm jumps .data data_arr DB 1,0,2,0,3,0,4,0,5,0,6,0,7,'$' ; данные .code ORG…