Всё ломал голову как же это назвать - предполагал charbricks и data-driven cellular automat, но пока остановился на названии
bricksputer.
После дополнительного обдумывания у меня сложился вот такой набор базовых блоков:
input connectors - входные коннекторы, принимающие потоки символы из внешнего мира;
output connectors - выходные коннекторы, отправляющие потоки символов во внешний мир;
mirrors - зеркала берут символ с одной стороны и в следующем такте переставляют с другой, поворачивая поток символов на 90 градусов;
translucent mirrors - полупрозрачные зеркала кроме создания ответвленного потока символов, пропускают основной поток сквозь себя;
transmitters - передатчики могут генерировать поток символов из рядом стоящего или мимо проходящего символа (символы вылетают в направлении стрелки);
accelerators - ускорители применяются для мгновенного пропускания сквозь себя потока символов без задержки на один такт в каждой клетке, в случае использования ряда ускорителей символ также за один такт преодолевает всю цепочку (символы вылетают в направлении стрелки, залетая с противоположной стороны);
terminator - терминаторы съедают потоки символов, пришедших с любой стороны;
bridge - мост служит для безболезнного разделения пересекающихся потоков символов (ставится в точку пересечения потоков);
exception - блок используется для передачи на верхний уровень информации об ошибочной ситуации в схеме, срабатывает при попадании в него любого символа;
equ blocks - сравнивающие блоки, принимающие два потока и выдающие символ, если он встретился в обоих потоках в этом такте - в противном случае ничего не выдается;
max blocks - блоки выдают максимальный символ из двух входных;
min blocks - блоки выдают минимальный символ из двух входных;
switches - переключатели работают как стрелки на железной дороге, останавливают один поток символов и пропускают другой - в зависимости от того ударил ли в управляющий вход символ в данном такте или нет.
Другие блоки более высокого уровня (реализующие булевые функции, десятичную или троичную арифметику) можно составить из вышеприведенных блоков, например вот так будут описываться блоки "равно" и "больше":