Articulo de referencia

Darwin (juego de programación)

IBM 7090 Darwin fue un juego de programación inventado en agosto de 1961 por Victor A. Vyssotsky , Robert Morris Sr. y M. Douglas McIlroy . ( A veces se cita erróneamente a Denn...

IBM 7090

Darwin fue un juego de programación inventado en agosto de 1961 por Victor A. Vyssotsky , Robert Morris Sr. y M. Douglas McIlroy . ( A veces se cita erróneamente a Dennis Ritchie como coautor, pero no participó). El juego se desarrolló en los Laboratorios Bell y se jugaba en una computadora central IBM 7090. El juego solo se jugó durante unas pocas semanas antes de que Morris desarrollara un programa "definitivo" que finalmente puso fin al juego, ya que nadie logró crear nada que pudiera vencerlo.

Descripción

El juego consistía en un programa llamado árbitro y una sección designada de la memoria del ordenador conocida como arena , en la que se cargaban dos o más programas pequeños, escritos por los jugadores. Los programas estaban escritos en código máquina 7090 y podían llamar a varias funciones proporcionadas por el árbitro para sondear otras ubicaciones dentro de la arena, eliminar programas oponentes y reclamar memoria libre para copias de sí mismos.

El juego finalizaba tras un tiempo determinado o cuando solo quedaba un programa en funcionamiento. El jugador que escribía el último programa superviviente era declarado ganador.

Dentro de cada programa, se podían designar como protegidas hasta 20 ubicaciones de memoria (menos en versiones posteriores del juego) . Si otro programa accedía a una de estas ubicaciones protegidas, el árbitro transfería inmediatamente el control al programa accedido. Este programa continuaba su ejecución hasta que, a su vez, accedía a una ubicación protegida de otro programa, y ​​así sucesivamente.

Si bien los programas eran responsables de copiarse y reubicarse , tenían prohibido modificar ubicaciones de memoria externas sin el permiso del árbitro. Dado que los programas se ejecutaban directamente en la computadora, no existía ningún mecanismo físico para evitar las trampas. En cambio, el código fuente de los programas se ponía a disposición para su estudio después de cada partida, lo que permitía a los jugadores aprender unos de otros y verificar que sus oponentes no hubieran hecho trampa.

El programa más pequeño capaz de reproducirse, localizar enemigos y eliminarlos constaba de unas 30 instrucciones. McIlroy desarrolló un programa de 15 instrucciones que podía localizar y eliminar enemigos, pero no reproducirse; si bien no era muy letal, era prácticamente indestructible, ya que era más corto que el límite de 20 instrucciones protegidas. En juegos posteriores, el límite de instrucciones protegidas se redujo debido a esto.

El programa "letal" desarrollado por Morris constaba de 44 instrucciones y empleaba una estrategia adaptativa. Una vez localizado el inicio de un programa enemigo, exploraba una pequeña distancia por delante de dicho punto. Si lograba eliminar al enemigo, memorizaba la distancia y la utilizaba en encuentros posteriores. Si, en cambio, alcanzaba una ubicación protegida, elegía una distancia diferente en el preciso instante en que recuperaba el control. Las nuevas copias se inicializaban con un valor de éxito. De esta forma, el programa de Morris evolucionó en múltiples subespecies, cada una específicamente adaptada para eliminar a un enemigo en particular.

Véase también

  • Tron , una película de 1982 basada en un concepto similar.
  • Core War , un juego más moderno con el mismo concepto.

Referencias

  • Aleph Null. «Recreaciones informáticas: Darwin», Software: Practice and Experience , vol. 2, núm. 1, págs.  93-96 (enero/marzo de 1972). Archivado el 16 de julio de 2011 en la Wayback Machine .
  • McIlroy, MD , Morris, R. , Vyssotsky, VA (1971). "Darwin, un juego de supervivencia del más apto entre programas" ( versión HTML )
  • Metcalf, John. "Darwin: La supervivencia del más apto entre los programas"