(Crédito: CWI)

(Crédito: CWI)

Para conmemorar el centenario del nacimiento de Alan Turing, el Centrum Wiskunde & Informatica (CWI) construyó una máquina Turing simple utilizando LEGOS  -parte de la exhibición en el CWI –  para mostrar lo simple que una computadora en realidad es, realizando cada operación tan visible como es posible y utilizando un sólo juego de LEGOs Mindstorms.

“Una máquina Turing es un dispositivo que manipula símbolos en una cinta o tira de acuerdo a una tabla de reglas. A pesar de su simplicidad, una máquina Turing puede adaptarse para simular la lógica de cualquier algoritmo computacional, y es particularmente útil para explicar las funciones de un CPU dentro de la computadora.” (Wikipedia)

En realidad no es una máquina física. Es un modelo teórico que describe las capacidades fundamentales de casi todas las computadoras existentes hoy. Esto significa que si algo puede ser realizado en una computadora, también puede hacerse en una máquina Turing. Esto representa un gran modelo para los científicos para utilizar y descubrir los límites de las computadoras (por ejemplo, teoría de la complejidad) y también para mostrar a una audiencia más amplia la manera en que una computadora funciona.

La máquina Turing construida con LEGO para el CWI usa una cinta basada en la interpretación clásica de la memoria en computación: interruptores. También utiliza un sensor de luz para determinar el valor de un interruptor: si el interruptor está habilitado (ON), el sensor verá el color negro de la superficie del interruptor. Si el interruptor está deshabilitado (OFF) verá el color blanco, haciendo así posible distinguir entre los dos estados. Un haz  rotatorio de luz montado arriba de la cinta puede cambiar el interruptor hacia ambas direcciones.

El modelo original de Alan Turing tenía cinta infinita, pero LEGO tiene un ligero problema para suministrar bloques infinitos por lo que la cinta tiene 32 posiciones solamente.

Set de Instrucciones Básicas

W(0|1) = blanco es 0 o 1 en la cinta
M(F|B) = mover la cinta ya sea hacia adelante o hacia atrás
J(_|0|1)[0-9]+ = leer & saltar (siempre, cuando 0, o cuando 1) a una línea en la tabla de instrucciones

El software que se ha desarrollado para ejecutar programas en lenguaje básico de máquina Turing lo encuentras aquí.

El sitio de la Máquina Turing construida con LEGO lo encuentras aquí.