Muchas actividades cotidianas pueden verse en término de cómputo, pero ¿tejer?, parecería que esto está fuera de lo que se hace en las ciencias de la computación, pero no es así. Por ejemplo, en los tejidos se pueden ver patrones y de hecho, hay máquinas que tejen automáticamente. Hay incluso una interesante relación entre tejer y los lenguajes de programación.
El argumento comienza con el hecho de que crear patrones de tejido implica un programa, pero además, en el tejido hay agujas y lana, por ejemplo. Así, la computadora tejedora, por llamarla de alguna manera es el hardware que se usa para tejer.
Podemos observar que quien usa las agujas de tejer las utiliza tanto para tejer como para almacenar información temporalmente. Las idea es que al hacer un punto en el tejido finalmente estamos haciendo algo similar a utilizar una cinta en una máquina de Turing. Pero no solamente hacemos esto, se pueden usar más de dos agujas y además, éstas no tienen porqué ser rectas, bien podrían ser curvas.
Si se tienen tres agujas, entonces la tercera actúa como almacenamiento adicional. Una aguja con el final de la misma bloqueado actúa como un stack, una pila, una estructura LIFO (Last In First Out). Una aguja con dos terminaciones en punta bien podrían ser consideradas como una cola con doble final.
De aquí en adelante podemos hacer analogías más complejas pero eso no es tan importante. Lo relevante es que el tejer es mucho más complejo de lo que habíamos imaginado. Para poner un ejemplo: una bola de lana es memoria y cada punto que se hace puede verse como una estructura de apuntadores a los punto realizados, es decir, una estructura de listas ligadas, por ejemplo.
Este hecho y el saber que el tejer es una actividad secuencial nos lleva a la especulación de si el tejer es una implementación de la arquitectura Von Neumann pero en este caso con cada aguja formando una unidad computacional que tiende a trabajar en pares. Podemos llamarle a esto el tejer de Von Neumann.
Todo el proceso tiene cuatro ciclos de reloj en una secuencia que corresponde al hacer una puntada tradicional al tejer. Hay también operaciones para crear diferentes tipos de puntos. Consecuentemente todo el fenómeno es complejo e interesante.
Una razón para esto es que al identificar las unidades (átomos) del proceso de tejer, podemos usarlas para hacer los bloques para construir toda clase de puntos en el tejido.
Esto por sí mismo suena de interés incluso práctico. Habría pues que probar formalmente que el tejer es Turing completo, es decir, puede hacer las operaciones y comportarse como una máquina de Turing. La cuestión va más allá de la curiosidad científica. Bien podría estar pasando que en su totalidad, por qué no, los procesos cotidianos encajan en máquinas de Turing. ¿Será cierto?
Referencias: