Все виды «простых» действий можно рассматривать как вычисления — но вязание? Да, вязание …
Я должен признаться, что использовал схемы для вязания в качестве примеров программ и чтобы передать общую идею программирования и языков программирования — но видели ли вы когда-нибудь схемы для вязания? Теперь у нас есть более глубокий взгляд на связь между вязанием и вычислением с помощью удачно названной вычислительной модели вязания.
Фото Johntex.
Аргумент гласит, что не только человек формирует вычислительное оборудование, которое запускает программу вязания, но и спицы, и петли. То есть вязальные спицы и разные типы стежков образуют вычислительную технику компьютера.
«Во-первых, мы можем заметить, что спицы для ручного вязания имеют как функцию хранения, так и функцию обработки стежков».
Основная идея заключается в том, что когда вы вяжете парой спиц, каждая петля немного похожа на запись петли на ленте машины Тьюринга.
Но это еще не все — вы можете вязать более чем двумя спицами, причем спицы не прямые. Если у вас три иглы, то третья игла действует как дополнительное хранилище. Игла с заблокированным одним концом действует как LIFO или стопка; игла с двумя заостренными концами может использоваться в качестве двусторонней очереди или двухсторонней очереди.
Отсюда все становится все более причудливым, но вы должны понимать, что вязание намного сложнее, чем кажется на первый взгляд. Например, клубок пряжи — это свободная память, и каждый стежок можно рассматривать как структуру данных указателей на стежки, с которыми он связан, то есть связанную структуру данных.
Наблюдение за тем, что вязание является последовательным по своей природе, приводит к предположению, что это реализация архитектуры фон Неймана, но с каждой иглой, образующей вычислительную единицу, которая, как правило, работает в парах — отсюда и вязание фон Неймана.
Все это имеет четырехтактную последовательность операций, которая соответствует вязанию стандартным стежком. Есть также операции для создания различных типов стежков, а также простых — изнаночная, скрученная изнаночная и т.д.
Причина всей этой сложной реструктуризации вязания в вычислительную науку?
Нужна ли причина?
Одна мысль:
«… что, как только мы определили атомы процесса вязания, мы можем использовать их в качестве строительных блоков для всех видов стежков ручного вязания и инструкций по вязанию».
Это звучит слишком практично. Я бы предпочел рассмотреть абстрактные вопросы информатики. В чем проблема остановки с точки зрения вязания фон Неймана? Есть невычислимый носок? Следует ли считать свободную память конечной или неограниченной? А как насчет вопроса сложности шарфа ….