Me gusta la respuesta de John Colagiola y quiero ampliarla un poco.
Primero, imagine una lámpara realmente genial. La lámpara tiene muchos colores diferentes, por ejemplo. Puede volverse rojo, verde, azul y blanco. En lugar de tener un solo interruptor, necesita varias entradas diferentes para corresponder a los distintos modos.
Ahora, en lugar de un interruptor de palanca, usaremos un paquete de cables. Podemos poner diferentes voltajes en cada cable. Luego se nos ocurren códigos para los diferentes estados. Le decimos al diseñador de la lámpara “cuando ponga 0.5 voltios en el primer cable y cero voltios en el segundo, haga que la lámpara se ponga roja” y “cuando ponga 0 en el primero y 0.5 voltios en el segundo, se pondrá azul”.
- ¿Podemos construir un sistema utilizando algoritmos de aprendizaje automático que puedan reemplazar a todas las empresas de consultoría financiera y técnica del mundo?
- Cómo aplicar mi enfoque para resolver el problema antes de abrir la solución
- ¿Cuál es la forma más eficiente de implementar la unión en varias tablas (> 5 tablas) usando SQL / ANSI SQL?
- Dadas dos cadenas de longitud N, ¿cómo encuentro la ventana máxima de patrones coincidentes si pueden mutarse?
- Soy un desarrollador de fuerza bruta, ¿cómo puedo mejorar mis habilidades de algoritmos?
Como John explicó, la lámpara no entiende el binario. Solo tiene una serie inteligente de cables en el interior que hacen cosas muy específicas cuando colocamos los voltajes correctos en el lugar correcto.
Ahora agreguemos otra función a la lámpara: le daremos a la lámpara una serie de cables de salida. Cuando la lámpara recibe la señal “roja”, se pondrá roja y pondrá la señal “azul” en los cables de salida. ¿Dónde debemos poner los cables de salida? ¡Conéctelos a los cables de entrada! Ahora la lámpara se auto modifica . Cuando comenzamos la cosa y la ponemos en un estado inicial, comienza a hacer cosas, ¡pero también modifica su propio estado de manera controlada!
Esto es todo lo que una computadora realmente hace. La CPU tiene muchos estados diferentes bien definidos. Cada estado se activa mediante una entrada muy específica y realiza una tarea muy específica, y luego, cuando está terminado, se coloca en un estado diferente. Estos estados pueden ser cosas como “colocar cualquier conjunto de voltajes en la dirección de memoria correspondiente a este conjunto de voltajes de entrada en este conjunto diferente de cables de salida” o “colocar estos dos conjuntos de voltajes de entrada y ponerlos a través de este circuito que hace binarios Además, coloque el resultado en este conjunto de cables de salida “o” mire este conjunto de voltajes de entrada para ver en qué estado debo entrar a continuación “.
Es realmente increíblemente simple y, sin embargo, puede hacer cosas asombrosamente complejas.
Algunas lecturas adicionales potencialmente útiles en Wikipedia:
Máquina de estados finitos
Arquitectura von Neumann