Извините если ошибся разделом, но более подходящего форума для этой идеи не нашел.
Идея вертится в голове очень давно, но вечно то одно, то другое отвлекает от ее реализации. Может, кого-нибудь заинтересует и он возьмется за изготовление девайса))
В общем, предлагаю затею - Brainfuck в железе.
причем в самом минималистичном варианте, достаточном для исполнения бф программ, и соответствующей архитектуре языка.
все имеющиеся на данный момент реализации "бф-процессоров" являются по сути запрограммированными микроконтроллерами, и это есть ни что иное как разбазаривание ресурсов чипа.
Предлагаемая мной задумка подошла бы для выставки ретро-машин, из серии "как если бы ее изготовили во времена Тьюринга".
Думаю, она даже могла бы найти свое место в ВУЗах как физическое воплощение частного случая машины Тьюринга, для демонстрации принципа работы.
Суть конструкции:
1) Лента программы - перфолента с 9 рядами для дырок(8 рядов - команды, 9-я - несущая для определения положения на ленте)
2)считыватель - электромеханический, с контактными язычками(либо оптопарами, но это мажорство)) ) для определения какая команда в данный момент на ленте.
3) ячейка памяти - колесо, кромка которого разделена на 256 секций с наклеенными на них изображениями из кодовой страницы символов.
4)блок памяти - это множество таких колес, нанизанных на общую ось. колеса спрятаны под кожухом, а на лицевой стороне окошко - в него колеса выглядывают одним символом(соответствующим "числу", находящемуся в этот момент в "памяти")
5)каждое колесо оборудовано контактной группой, которая замыкается в нулевом положении колеса, для определения этого положения.
6)головка-указатель, передвигающаяся по рельсам вдоль блока памяти по командам ">" и "<". на головке установлен прижимной ролик, который может проворачивать колеса памяти по командам "+" и "-"
7)встречая команду "," выполнение программы прерывается, на головке загорается лампочка, указывающая что в ячейку нужно ввести данные(повернуть колесо рукой), после чего нажать кнопку, сдвигающую ленту программы вперед и тем самым продолжающую выполнение.
встречая команду ".", выполнение так же прерывается и загорается другая лампочка, с целью показать человеку содержимое ячейки. выполнение продолжается той же кнопкой.
9)встречая команду "[", и обнаружив замыкание контактов 0 положения текущего колеса(ответный контактный язычок можно расположить на головке, а все колеса запитать общим через ось) - считыватель (2) начинает прокручивать программу вперед, игнорируя команды, до соответствующего "]". соответствующая "]" ищется при помощи счетчика - отдельного колеса с контактными язычками для нулевого положения. встречая "[" - колесо проворачивается в одну сторону(увеличивая содержимое счетчика), а "]" - в обратную, до тех пор пока язычки снова не сомкнутся.
10)встречая команду "]" и ненулевое положение текущего колеса, считыватель начинает отлистывать программу в обратном направлении до соответствующей скобки, ища ее описанным выше способом.
ну вот, в общих чертах))) надо будет еще придумать перфоратор для набора программы, в качестве ленты можно использовать чековую или для заклейки окон. дешево и сердито))
логику реакции на контактные язычки лучше собрать на реле, будет прикольно щелкать да и без транзисторов более исторично)) для точного позиционирования головки, колес, и пр. подвижных частей есть мысль использовать дополнительные контактные язычки. (Идеал конечно шаговые двигатели, но тогда надо будет и управление к ним, и логику электронную и т.п., а это немножко нарушает концепт)