>[carga_pcx]<
REDCODE.PCX
0
0
155
0
160
200
200
                 #ª255Core Warsª|

               #ª081INTRODUCCIONª|

­­­Saludos!!!, os voy a contar algo que pro-
bablemente entusiasme a muchos de vosotros,
en una serie de articulos, ver‚mos que son
las Core Wars, su historia, os ense¤ar‚ a
programar en lenguaje RED CODE, #ª082os regalare-
#ª082mos un compilador de RED CODE (el PANDS)ª|, ve-
remos los mejores "guerreros" espa¤oles e in-
ternacionales, organizaremos torneos, y todo
aquello que me comuniqueis. Pero ante todo
vamos a aclarar todo este galimatias, ya que
probablemente muchos 
de vosotros no hayan 
entendido ni papa de 
lo hasta aqu¡ expues-
to. Bien, comencemos 
por el principio....

Las Core Wars o gue-
rras en el n£cleo 
consisten b sicamen-
te en dos programas      
que pelean entre si 
en la memoria de un 
ordenador, la £nica
misi¢n de estos pro-
gramas es sobrevivir
y eliminar al opo-
nente.

Os preguntareis el      #ª098Portada del PANDSª|
porque del nombre de    
Core Wars, bien, lo de Wars creo que est 
claro, la palabra Core viene de que en ingl‚s
a la memoria principal (o RAM) se la suele
llamar "core memory" que significa "memoria
de n£cleos", ya que hasta hace unos 15 ¢ 20
a¤os, la memoria se fabricaba usando n£cleos
de ferrita, y se ha quedado con ese nombre,
aunque hoy prodr¡amos llamarlo algo as¡ como:
"RAM Wars", o "Guerra en la memoria princi-
pal", o como os m s os guste, pero bueno,
vamos a ver c¢mo empez¢ todo:

>[new_pag]<

 En la decada de los 40, nuestro viejo amigo
John Von Neumann, tuvo las primeras ideas que
se conocen sobre programas con la capacidad
para autorreplicarse a si mismos, sobre este
tema present¢ un estudio bastante avanzado en
su  obra "Theory and Organization of Compli-
cated Automata" de 1949.

Sus teorias no tuvieron en aquel entonces una
gran aceptaci¢n debido sobre todo a que eran
demasiado adelantadas para las posibilidades
de la ‚poca.

M s tarde, en los a¤os sesenta, John Conway
cre¢ lo que se puede considerar el primer
"programa viviente", programas que se compor-
taban de manera similar a los seres humanos,
es el conocido "juego de la vida", que muchos
conoceis y del que probablemente hablemos en
otras secciones.

En esa d‚cada de los sesenta se comenz¢ a
perfeccionar los programas y se lleg¢ a la
"Core Wars", eran concursos entre programas
que compet¡an por ocupar toda la memoria po-
sible del ordenador, a base de reproducirse y
ocupar toda la memoria disponible, incluso
llegaban a destruir al programa enemigo.
El ganador era el programa que ocupase m s
memoria.

Este juego tuvo gran acceptaci¢n entre los
programadores de entonces, llegando a los
centros de investigaci¢n mas prestigiosos
como el MIT y algunos m s. Hubo problemas
pues hab¡a programadores que pretend¡an que-
darse haciendo "horas extras" cuando en rea-
lidad jugaban a las Core Wars, desperdician-
do tiempo, dinero, recursos, etc...

En 1984 se public¢ un articulo de A. K.
Dewdney en  el n£mero de mayo de la revista
Scientific American, en la cual se decribia
con detalle todo lo relacionado con las Core
War, explicando un lenguaje llamado Red Code,
que estaba especialmente dise¤ado para crear
unos programas llamados "guerreros", los cua-
les compet¡an a trav‚s de un programa llamado
Arena, el cual pod¡a adquirirse contra reem-
bolso de 2 dolares.

>[new_pag]<

Esa fue la primera vez que ese tipo de
programas lleg¢ al p£blico en general. M s
tarde se fund¢ la  I.C.W.S. (International
Core Wars Society) en los E.E.U.U., en otros
pa¡ses tambi‚n lleg¢ la moda y en Espa¤a ,(no
ibamos a ser menos), se fund¢ la S.E.R.C (So-
ciedad Espa¤ola de Red Code). Esta sociedad
organizaba competiciones nacionales y editaba
varios boletines, aunque he de confesar que
en la actualidad apenas he oido hablar de
ella.

Red Code es una especie de lenguaje ensambla-
dor de s¢lo 10 instrucciones, es muy simple,
pero como veremos nos permite realizar muchas
cosas....

Red Code se estudiaba en la Universidad de
Granada, en el primer curso de inform tica,
en la asignatura Inform tica General, las
clases las daba un profesor llamado #ª082Juan J.
#ª082Merelo Guerv¢sª|, cuya direcci¢n electr¢nica
es:  #ª080jmerelo@kal-el.ugr.esª| (por si quereis
mandarle un saludo), el curso sobre Red Code
serv¡a como una introducci¢n al lenguaje
ensamblador, actualmente ya no se da Red Code
y en su lugar se estudia ODE (Ordenador
Did ctico Elemental), un ordenata creado por
profesores de aqu¡, con el que nos ense¤an su
lenguaje ensamblador, y es ABURRIDISIMO, a mi
personalmente me gusta mucho m s el Red Code.

Bueno, a partir del red Code se pueden hacer
muchas m s cosas, como por ejemplo investigar
la vida artificial, etc... hab¡a varios pro-
yectos en marcha pero eso es otra historia, y
nosotros nos quedamos con nuestro magn¡fico
Red Code.

Como dije antes usaremos una especie de in-
t‚rprete-compilador para ejecutar nuestros
programas a los cuales se les suele denominar
"guerreros". El int‚rprete se llama PANDS, y
a sido creado por #ª082Juan Antonio Molina Corpasª|,
el cual nos ha cedido amable y desinteresada-
mente su programa para que todos podamos dis-
frutar del mismo, ya que es uno de los mejo-
res int‚rpretes que he visto, y adem s hecho
por un #ª080ESPA¥OLª|, o sea que lo tiene todo.

>[new_pag]<

No puedo ofreceros sus datos para que contac-
teis con el autor, ya que cuando habl‚ con ‚l
me dijo que estaba muy ocupado, no podr¡a
responder a nadie, as¡ que para no quedar mal
prefiri¢ no dar sus datos.
Una cosa importante es que el espacio de me-
moria en el que se compite es memoria simula-
da, en la que hay una instrucci¢n o dato por
posici¢n de memoria, (no es memoria real sino
un array que simula que es memoria), el tama-
¤o de la memoria donde se compite o arena es
de 8 Kb en el int‚rprete PANDS y es un espa-
cio de memoria c¡clica, lo que quiere decir
que despu‚s de la £ltima posici¢n vuelve la
primera. Es como si unieras el principio y
final de un array.
Algo que despista mucho en un principio es el
hecho de que la posici¢n de memoria es rela-
tiva a la instrucci¢n que se est  ejecutando
en cada instante, lo que quiere decir que la
instrucci¢n que se est  ejecutando actualmen-
te siempre se encuentra en la posici¢n de me-
moria 0, la anterior en la -1, y la siguiente
en la posici¢n 1, etc...

POSICION

  -2
  -1
   0  <-- Instrucci¢n actual en la posici¢n 0
   1
   2

Hasta aqu¡ la introducci¢n, espero no haberte
aburrido mucho. En el pr¢ximo n£mero de #ª255Vir-
#ª255tual Zone Magazineª| seguiremos con el lenguaje
Red Code, veremos las instrucciones y haremos
nuestro primer guerrero, tambi‚n #ª255regalaremosª| 
el int‚rprete #ª098PANDSª| (ver dibujo en 1§ p g.) y
algunos de los mejores guerreros del mundo, 
entre ellos el campe¢n mundial y el campe¢n 
Espa¤ol, los cuales estudiaremos a fondo.

 Dudas, etc... a:  

        #ª080ajgarcia@edison.ugr.esª|

 o a: #ª080Antonio Javier Garc¡a Mart¡nez
      #ª080C\Camino de Ronda 38, 1§ D
      #ª08018004 -GRANADA-






