24

Revista Login:_ nº 13

Embed Size (px)

DESCRIPTION

Revista Login:_ nº 13 de marzo abril de 1995, publicada por el GUI - Grupo Universitario de Informática de la Universidad de Valladolid

Citation preview

Page 1: Revista Login:_ nº 13
Page 2: Revista Login:_ nº 13

• 111111

1 nforn1ática Personal

• KHEPRI DATA® el Mota, 15 (zona La Rubia)

tel. 277 1 07 fax. 29 15 27 ORDENADORES REDES PERIFÉRICOS CONSULTORÍA FORMACION MULTIMEDIA

[1 1] -~

iooo@l ~~~~~0;;:::::;::::,; 1--D---1

~ ~ EPA POLLUTION PREVENTER

Cl

NUESTROS ORDENADORES LO TIENEN TODO ... . . . EXCEPTO UN ALTO PRECIO

INTEL DX4/1 00 HDD 540 Mbytes RAM 4 Mbyte s 72 contac tos SVGA VESA PCI 1 Mbyte ID E B. L. ,,.

,...-"" \ M o n it or C olo r 1 4" _,- \ Flo ppy 3, 5" 1 , 44 M bytes __ _.,/~es \, Tec~ado _.----- ·~60 r-..Q~ __ ,,~ R a t o n _- -.\00 ~~-:/

~~i~~orre ·< --~~\:-~g__./ j ,C--~ --E- --- ·t&Q-i l 149.000 Pts \\ )~~ /- L-~~~----~pana _ ;;D_ ~---1 6% IVA NO INCLUIDO \_,.. pague hasta en 12 meses sin interés!!

Page 3: Revista Login:_ nº 13

Login:_ Nº13 Marzo-Abril l . 995

Director y maquetador José Emilio Mori Recio

11 ustrador y portada José Luis Escribano

Redactores Alfredo Catalina Gallego

José M'' Cuenca de la Cru; Luis A. Cuesta S.1ncheL

Joaquín Ferrero San Pedro Ángel M. Galván Alonso

José Emilio Mori Recio Javier Palmero Esteban

Publ icidad Mario Díez Calvo

Hugo Fernández Alonso Luis García Tejero

jorge Merino López

Distribución Joaquín rerrero San Pedro

Imprenta El Cllmpus Artes GrMictls, S.A.

Telf. y Fax (983) 27 25 08

Depósito Legal: VA-436/92 fJTff(.1cl :! {/(/0 t jtiiiJif rrt \

Difusión gratuita P· r1<1 ltculml htm. \Ira/

lo Rev1sto login: es uno publicación de lo Asocioc1ón

1 1 f. r'J '

(G UJI de lo Univers1dod de Valladolid, 1nscnlo en el Registro Provincial de

Asoooeiones, Sección la. número l 4n lo Asociación no asume n~nguno

responsabilidad sobre los opiniones expresados en los artículos firmados.

Se autorizo lo reproducción de los conlenidos de lo revisto, siempre y cuando se cite expresomenle lo

procedencia de los mismos

sumario Password: El mundo o/ revés

Noticias del mundillo informático

Cobol, Ensamblador y C: ¿Amigos poco reconciliables? Procedimientos poro utilizar desde Cobol lo potencio del (y el Ensamblador

Por Ángel Manuel Galván Alonso

Charles Babbage: Mecánica aplicada a la computación

4

5

7

Un vistazo o la p-ehrtono de los ordenad.•res a 'ra.,. s de la vtdo del genio/ matemático.

Por José María Cuenca de la Cru; 12

Introducción a las Redes neuronales artificiales Cómo los máquinas pueden aprender o pensar siguiendo el modelo del cerebro humano.

Por Alfredo Catalina Gallego 14

MAC... Windows Alternativas en el mundo Apple para migrar desde los programas Windows del P(

Por Javier Palmero Esteban 21 ,------------------------,

La "ut;;crcn~. l ,l'>, c..umentarios. aclnracioncs. anuncio .... suscripcil'nc:-, nu­mero-. ntrnsndos. etc. relativas a la re\ isla Login: los pt,déis dccwar: * Personalmente en nuestra A ocinción, CU) a sede social se encuentra en la Facultad de Ciencia. ( P.) dd Prado de la Magdalena). prcaula-. A4-B4 * Por correo dirigido ni Grupo lJnivcr itnrio de lnlonnátic:s -Re-.: i~ta Logi Apdo. de Correos 6.062, 470RO Vall:ldolid. • Por corre,l electrónico dirigido a l"C\'ista ti gui.uva.cs.

Los programas de dominio publico) ~lwreware comentados en la revis­ta ~e pueden obtener en el sen idor de fip anónimo de lntemct perteneciente a nuestra Asociación. uniendo en la dirección ftp.gui .u' n.cs.

Marzo-Abril 95 login: 3

Page 4: Revista Login:_ nº 13

Password:

H ace poco, leyendo las carteleras de cine, me detuve a hacer esta reflexión. Hasta ahora, la informática habla evo lucionado progresivamente y en muchas ocasiones ha­

bía adoptado para sí patrones y modelos de la sociedad de consu­mo. Más concretamente, muchos juegos de ordenador tenían como protagonistas a personajes del cine (todos habremos visto en la pantalla a Indiana Jones, a Terminator ... ), pero ahora, por primera vez que yo recuerde, la gran pantalla ha adoptado un personaje de un juego (Street Fighter) para una pelicula. Sin duda, la rápida evolución de toda la informática -también de los juegos- nos está llevando a este «mundo al revés» en el que ella es quien marca la influencia.

Y no se trata de que en este mundo al revés vayamos a estar peor que ahora. Los cambios y evoluciones siempre crearon temores entre los humanos. La informática marcará una revolu­ción, como en su momento lo hicieron la rueda o la máquina de vapor. Los historiadores del futuro trazarán una linea imaginaria en algún punto de estos cincuenta años pasados, y dirán que marcó el inicio de la Era Informática*. Y falta aún lo más importan-

NOTA ACLARATORIA

El mundo al revés te por llegar: todo parece indicar que, en unos diez años, la «aldea global>> será fmalmente w1a realidad si los hogares del mundo son conectados por cables por los que llegará toda la información, datos, imágenes y sonido. Y con ello sin duda aumentará y mejo­rará, no sólo nuestra calidad de vida y comodidad, sino nuestra calidad humana. Hoy en día, Sarajevo ya está «abierta» al mundo gracias a Internet: un ejemplo de cómo la intercomunicación con­lleva una mayor fraternidad humana. Vaya desde Login: nuestra aportación para que evolucionemos sin suspicacias ni dudas, sino con la confianza en el futuro.

].E.M.

(*) Seguro que a muchos les sonará la frase. De acuerdo, no voy a marcarme el tanto. Está tomada de Fundación, de Isaac Asimov, y la incluyo porque además de venirme a la mente por adaptarse tan bien al contexto, resulta un homenaje por mi parte a tan estu­penda obra.

En relación con b sección ·Reflexión p:l/71 pens:~dores·, np:~rccicl:t en l:1 págin:1 6 del número 17 (Enero-Febrero 9'5) de la revista Uneas Universitarias, en la cu:-~1 dicha revista dab:1 a conocer el ;ICt:l donde se rctkjaha la reunión en l::t que todas las revistas universitarias reparueron l:t subvención otorgada por el viccrrcctor.tdo, Login: dese<J hacer consr:tr los siguientes puntos:

4

1 ~) La inform:1ción q ue presenta Líneas, est:í expuesta con :ínimo de tergivers:1 r y hacer creer a sus lectores que el resto ele re,•ist:Js hemos planteado un:1 conjur<J conrr<J ellos. JndependientcmcnLc de las d iferencias que desde luego existen entre l:ls cl ivers:~s

revist:ts (en l:ls que cabe scñ:1b r que Login: pennanece :~1 margen, como revista divulgativa y ·:lcontcsion:ll· que es), en nmgun momento de las reuniones manrenicl:~s se intentó perseguir :1 Líneas, sino que los represenr:tntes intem:unos llegar a un :tcuerclo :;obre d rqxmo m:ís adecuado pam todos, siendo b opinión general -salvo de ellos- que Líneas habí:l estado recibiendo demasiado (rm::llldo el medio millón, siendo 1.400.000 a repartir este año entre ocho revistas) El hecho ele tener un:~ gr<Jn tir:1d:1 y mucha -lüstoria· no quiere decir que sen justo que ellos reciban mucho m:ís dinero que el resto. (Y es que la justic1a es ciega .. )

2~J El objetivo de Login; es difundir la infom1:ítica y no ser una revista peseter.!(') cuya idea de democracia sea que si la mayoría no opma como yo, me entado y os pongo verdes, en lug:1r de intentar comprender los mzonamientos de los clem:ís pnr:1 que les toque menos d111cro, los cuales por cieno son muy lógicos, en especi::d el hecho ele que~ ellos reciben subvenciones aclicion:lles a la uni,·ersirari:J . Y :1 pesar de lo cual. se siguen llevando la mejor mjacb, y <lllll con cliferem:i:~ sobre el resto.

(•) De hecho, Login: viene teniendo pérdidas económicas en pr.ícticamente todos sus números

Com1s1ón Ed1tortal del

GruP.O Umvers1tar10 ~e

Informática

'C' para mgemerías Sistema operabuo ~oOOS 1500

ltl&RAUPT LIST and other useful files u43 (6 Rou 1994) lenguaje ~k Bas1c

2600 600

El uruuerso dag1tal deiiBfD PC. AT y PS/2 21

Login:

Para compra o mayor mformac1ón. acudw a Pre~ulas n4=B4. racultad de C1enc1as. Umuers1dad de Ualladohd

Marzo-Abril 95

Page 5: Revista Login:_ nº 13

( )' {

111 Jornadas Té<nicas Informáticas de la A<UP. La Asociación Cultural Universitaria Palentina ha organizado, por tercera oca­Sión en estas fechas de vacaciones, unas mteresantes jornadas en las que se han tratado temas informáticos de diversa In­dote en conferencias que han tenido lugar en las tardes del 17 a122 de Abril, en la sala Caja España de Palencia. Entre otros asun­tos, se ha hablado de BBSs, Procesadores Alpha, Accom RISC PC, Edificios Inteli­gentes, etc. y se han efectuado dos pro­yecciones cinematográficas. Dado que en la fecha de cierre de este número no han concluido dichos actos, tendremos dis­puesto un resumen más amplio, realizado m Sifll para el n° 14.

SINFO' 95. Del jueves 20 al domingo 23 de Abril se ha celebrado en nuestra Feria de MueSiras el Salón Monográfico de la In­formática Profesional y Nuevas Tecnolo· gfas (SlNFO), patrocinado por AVEIN, la Asociación Vallisoletana de Empresas de Informática.

MUNI"~~ 1 e \1 \ <e •. Mientras los pre­cios siguen bajando (Compaq sigue ahora la estela de 18M) las tecnologías siguen avanzando.) así se anuncia el desarrollo de ch1ps de 1 Gigabyte de RAM porNEC. ¿Serán comercial izables ... ?

En materia de microprocesadores, Sun Microsystems ha desvelado su futu­ro UltraSPARC, RJSC de 64 bits que será el primero en la industria en incorporar en el propio chip soporte multimedia para videoconferencias. descompresión MPEG-2 en t1empo real. etc. Mientras, D1gital Equipment Corporation ha sido el primer fabricante en romper la barrera de los 300 Megahertzios con su nuevo procesador, el Alpha A.Y'P 2/16-1 (con más de 9 millo­nes de transistores), el primero disponible comercialmente en superar los mil millones de instrucciones por segundo ( 1 BIPS, Bi­llón de Instrucciones Por Segundo ingle­sas que aquí deberemos traducir adecua­damente).

Otro más de los eternos juic1os en­tre empresas se ha resuelto. Y esta vez M1crosofl no ha perdido ... Apple había re­clamado 5.500 millones de dólares a M icrosofl y Hewlett-Packard por haber vio­lado su patente al crear software basada en la Interface Gráfica (GUI) de Windows. habiendo de por medio un

Noticias del mundiUo informático acuerdo de licencia sobre este interface entre Microsoft y Apple. Sin embargo, Apple aún puede apelar.

El primer CD-ROM de séxtuple velocidad (si se generalizan, es de temer que acaben llamándose 6x a secas) ha sido presentado por la compañia Plextor. Se trata del modelo 6PleX, con una veloci­dad de transferencia de 900 Kb/seg y tiempo de acceso aleatorio de 145ms. El imcio de su distribuCIÓn está previsto para el mes de Abril, incluyendo drh!ers es­peciales para el aprovechamiento de sus posibi 1 idades.

Tras siete meses, 2M 3.0 nos trae importantes mejo­ras y ha conseguido un gran éxito en Internet.

D ,, tl'lolo P· 1 u

2M 3.0. Después de siete meses de inten­sas pruebas en fase beta en los que se ha aumentado notablemente el interés por su salida, finalmente el pasado lunes 6 de Marzo vio la luz la versión 3.0 del progra­ma de formateo y soporte de discos de alta capacidad y velocidad, 2M, de Ciriaco Garcia de Celis, que ha superado los resul­tados que parecían inmejorables de la ver­sión 2.1. Los cambios pueden resumirse de la siguiente forma:

• Reestructuración casi completa del código, simplificando su mantenimien­to, mejorando y subsanando ligeros pro­blemas, añadiendo nuevas opciones y con mejor ayuda y documentación.

• Nuevo programa residente para mejorar las posiblidades de 2M: 2MDOS, que permite al DOS el formateo sobre la marcha, usando FORMAT, de discos no estándar así como su uso con DISKCO PY, opciones que además incluyen el soporte para discos FDFORMA T. pudiéndose pres­cindir del FDREAD Y, lo más importante, el formateo mediante cualquier programa de los discos a tamaño estándar «bajo 2MDOS», se real1za con la técnica DiskBoost que crea d1scos mucho más rápidos de lo normal (los más rápidos en 1 .44M, con casi 45 Kb/seg en lectura y es­critura).

• Nuevo programa que incorpora una tecnología revolucionaria y experi­mental (aunque segura) para el formateo con acceso directo a la unidad de disco (pasando por enc1ma de la mismísima

controladora), el 2MGUI -de GUlness­que permite crear discos por encima de los dos millones de bytes en 3"Yz liD, y bate en todos los formatos el récord ab­soluto de espacio disponible. Sus «pegasll son el consumo de memoria y la necesi­dad de definir letras de unidad especifi­cas para estos formatos .

• Nuevo, espectacular y completo programa de información 2M-INFO, que reúne todos los ficheros de documenta­ción anteriores e incorpora los programas 765DEBUG -ahora con una apariencia ra­dicalmente distinta- y 2M-FDTR de la ver· sión 2.1.

El nuevo 2M se ha convertido en una de las utilidades de Dominio Público para PC de mayor expansión e interés en muchísimo tiempo. No es ésta una afirma· ción gratuita, sino que gracias a su difu­sión en Internet, se conocen usuarios de 2M en por lo menos 35 paises, además de haber sido comentado y analizado en diversas revistas de programación nacio­nales y extranjeras, y de haber supuesto un aumento muy importante en el tráfico de datos en nuestra estación luna.gui.uva.es, actualmente una de las más conocidas y visitadas de España.

Por cierto. hay que recordar que 2M se distribuye como Cardware: qu1enes decidan usarlo con regularidad tienen la obligación de enviar una tarJeta postal a Ciriaco. El hecho ¿curioso? es que, con diferencia, se han comunicado por correo electrónico con Ciriaco más usuarios de Estados Unidos que de España, aunque nuestro país sea el de mayor número de usuarios registrados.

Por otro lado, gracias al esfuerzo conjunto de Ala in Knaff, en Grénoble (Fran­cia), y de David Niemi, en Virginia (Esta· dos Unidos), las utilidades de manejo de disco al estilo MS-DOS desde Linux, las mtools, af\aden ya a sus posibilidades pre­vias el soporte de los formatos especiales 2M, en todas sus densidades y tipos, in· cluyendo los formatos «antiguos» más len­tos. De esta forma, podremos instalar Linux sin temor a no poder acceder a nuestros d1scos 2M; bastará emplear comandos del tipo mdír o mcopy, al igual que con el resto de discos. También se prevé para próximas fechas el soporte de discos 2MGUI.

Ciriaco ha anunciando una próxima revisión 3.1 de 2M en Mayo, de la que en nuestro próximo número os informare­mos ampliando los datos que ahora hemos adelantado sobre esta destacada utilidad.

Marzo-Abril 95 Login: 5

Page 6: Revista Login:_ nº 13

Take Command para Windows de JP Software. JP Software, la compai'lia de software dis­tribuido por shareware creadora del procesador de comandos 4DOS, ha hecho público el pasado 23 de Noviembre un nue­vo producto, que viene a ser una alternati­va inteligente a los shells secundarios de Windows: Take Command (TCmd). Se trata de un programa 1 00% Windows, con menús, cuadros de diálogo y pantalla grá­fica, pero que imita totalmente una sesión de comandos 4DOS. De esta forma, los comandos soportados son muy sim ilares y desde luego compatibles con los de 4DOS; con adiciones muy interesantes, como la posibilidad de incluir cuadros de diálogo y menús Windows en los fiche­ros de comandos BAT 6 BTM; y opciones adicionales en los menús del programa, que permiten configurar el entorno, alias, descripciones, etc. en cuadros de diálogo con el manejo intuit ivo habitual de Windows. Contaremos también, como siempre, con los históricos de órdenes y de directorios y con la facilidad para per­sonalizar las opciones a nuestro gusto, incluyendo una barra de hasta 16 botones que podemos destinar a lanzar aplicacio­nes y/o a producir un eco de texto en la pantalla de trabajo.

Al ejecutar programas externos DOS desde TCmd, se abre una ventana DOS adicional, pero podemos hacer que «corran» en la misma sesión gráfica de TCmd (siempre que trabajen en modo tex­to) instalando en nuestro SYSTEM.INI un controlador suministrado llamado CAVEMAN.386 para la gestión de progra­mas DOS. Aunque éste y otros aspectos son los de una primera versión y necesi­tan todavla algunas mejoras, el producto ya merece un vistazo al menos para quie­nes ya usen 4DOS. Adicionalmente, el 1 de Febrero apareció una versión 32-bits para Windows NT 3.5 y superiores. En el momento de cerrar este número, las últi­mas revisiones de los productos de JP eran: 4DOS 5.5 C, 40S/2 2.5 C, 4DOS/ NT 2.5 C, Take Command 1.0 B y TCmd32 1.0 A.

Antivirus. La situación en lo que se refiere a los antivirus más conocidos por todos, SCAN y F-PROT, ha sufrido algunas va­riaciones, aunque no muchas. Después de iniciar una nueva numeración tras la ver­sión 1 17 del SCAN y pasara la2.0.0, McAfee ha introducido, como cabla esperar, la op-

6 login: Marzo-Abril 95

ción /CLEAN para poder ser utilizada des­de el SCAN.EXE, reuniendo lo que antes eran dos productos en uno. Sin embargo, no ha creado un entorno con menús para desarrollar el trabajo de la limpieza de vi­rus, por lo que sigue por detrás de F-Prot en este sentido. Hay que decir que su do­cumentación es ahora muy extensa, aun­que por ejemplo para la V217, última a la fecha, se sigue distribuyendo el manual de la 2.1. 1 (los cambios de versión tan sólo van referidos al fichero de datos de los vi­rus) lo que a alguno le puede llevar a con­fusión. Por otro lado, ¿tiene alguna inten­ción de competencia a F-Protla similitud en el número de versión? Y es que ahora ya se ha distribuido una Beta de la V220, «superando» por vez primera la numera­ción de F -Prot, tradicionalmente «lenta». También siguen existiendo versiones para Windows y OS/2.

Desde la 2.0.0 es fácil saber qué tipo de SCAN cae en nuestras manos, ya que la denominación de los ZlPs en que se distribuyen indica: con tres letras, el S.O. (SCN en la versión de DOS, WSC Windows, OSC OS/2 ... ); con otra letra la fase de versión: Alpha, Beta o Final (un guión); con tres números, la versión; y en el octavo carácter, la letra que indica la distribución de esa versión especítica; asi el SCNB220E.ZIP es una Beta de la V220 del SCAN para DOS de distribución Elec­trónica (por ejemplo, a través de Internet).

En lo que respecta a F-Prot, en Marzo se han sucedido las versiones 2.16d y 2.17 (última disponible). Las actual iLa­ciones están por lo general más cuidadas que en Sean, y las últimas variaciones in­troducidas se refieren sobre todo al cam­bio de nombre de numerosos virus. Frisk Software recomienda en estas últimas ver­siones usar el programa PGP para verificar la signatura de bytes que identifica al ZIP como idéntico al original de Islandia, aun­que tal vez resultara más cómodo y evi­dente para el usuario emplear la Verifica­ción de Autenticidad de PKZIP en su ver­sión registrada, como hacen McAfee o JP Software.

11 ·\RD\\ARf '1 BI OS En cuanto a nove­dades en el apartado de Hardware, cabe destacar la proliferación de placas madres, desarrolladas por las más diversas casas, entre las que se inc luyen IBM e Intel. Estas nuevas placas incluyen lo último en chipsets mejorados, para dar soporte a toda

la amplia gama de nuevos procesadores y a los nuevos estándar en Buses, tanto VLB como PCI, incorporando algunas como novedad el soporte en la misma placa, o a través de tarjetas, de los nuevos ATA-2 o ATA PI, que nos permitirán tener discos lOE de más de 528 Mb. o conectar un CD-ROM (se espera una fabricación masiva de nue­vos dispositivos lOE, desde discos de 1 Gb. o más, hasta las nuevas unidades CD­ROMIDE).

Con el desarrollo de nuevas placas aparecen también BlOS que pretenden adaptarse mejor a l nuevo hardware, por e llo vemos revisiones continuas en su código de los tres principales fabrican­tes: American Megatrends (AMJ), Award y Phoenix.

AMI destacó no hace mucho con sus BIOS gráficas que permitían ser confi­guradas mediante el uso del ratón en un entorno al estilo Windows o GEM (el casi o!vidadoGraphics Environmenl Manager de Digital Rcsearch que han incorporado históricamente los ATAR! ST, entre otros) y sistemas antivirus incorporados a nivel BIOS.

Mientras, los esfuerzos de Award y Phoenix se han encaminado a dar mejor soporte a los nuevos buses, trabajando a distintas frecuencias de reloj, y en algún caso hemos visto como se incluía un deta­lle que siempre echamos en falta cuando teníamos disqueteras mixtas: elswap o in­tercambio de unidades de disquete al arran­car. Ignoramos si este detalle tiene ahora algún propósito más, pero llega tarde, máxi­me cuando Phillips fue la pionera en las BIOS de algunos de sus equipos, al hacer que aquella unidad desde la que arrancá­ramos se autoconfigurara como unidad A:, independientemente de los conectores en la controladora.

Con todo, el mayor esfuerzo está aún por desarrollarse a nivel PC, pues la demanda de dispositivos y BIOS que per­mitan el uso del tan comentado Plug & Play (también coloquialmente llamado Jumpers-Free), está ahora en la calle, y hacia ahí se mueven la mayor parte de los esfuerzos de fabricantes de Hardware y Software.

Luis A. cuesta Joaquín Ferrero san Pedro

José Emilio Morí Recio

Page 7: Revista Login:_ nº 13

Programación

Cobol, Ensamblador y C: ¿Amigos poco reeoneiliables? El Cobol viene siendo, desde su creación en 1.960, un lenguaje destinado a su fácil comprensión tanto por un observador como por un experto, dada su similitud sintáctica con el inglés. conse· cuencia directa de este objetivo es Que Cobol esté lejos de utilizar de forma óptima los recursos del ordenador. No obstante, en este artículo vamos a ver cómo podemos convertirlo en una herramienta más poderosa con la ayuda del e o del Ensamblador.

ANcll rv\,\1'-oULL G,\l W oN At o Nso

Como dice e lthulo, COBOL suele ser poco amigo de los ·malabarismos• de los que son el­

paces tanto C como ensamblador: de hecho, típie~mente se suelen situar como extremos radicales en lo que a progra­mación se refiere.

Últimamente se están hadendo grandes esfuerzos para poner al día un lenguaje que muchos consideran un au­téntico dinosaurio: b norm:t 85 y la in­clusión de témiCIS OOP son claros ejem­plos. De todos modos, el COBOL nune~ se ha dejado de usar para aquello para lo que ha sido diseñado: aplicaciones de gestión y, porta nto, m:tnejo de ficheros.

Pero, probablemente, si progra­mas (o estás obligado a programar) en COBOL, te darás cucnt:1 ele lo limitado que está en dertos aspectos. Si además est.is acostumbrado, o sientes b necesi­dad de usar eso ele lo que por fuerza careces, probablemente ac.1bes por evi­t:tr el COBOL en la medida en la que puecbs.

Para paliar esas -defidend.as-, pro­ponemos aquí uro soludón: enlazar ruli­nas ensamblador y/ o e dentro de pro­gramas en COBOL. Esto pa1ticulariza eno1memente el código COOOL para los PC, pero si eso es algo que no te pre­ocupa, y quieres dar un toque esped.al a esos programas COBOL ·rústicos y encorsetados-, estás leyendo el artículo adecuado.

Los programas empleados para comprobar los listados han sido los si­guientes:

- MacroAssembler v4.00 (masm) - lBM COBOL vl .OO (cobol) - Turbo C++ vl .OO (tcc :

compilador ele línea de comandos) - LINK Microsoft v2.10 Clink) Healmentc, la cuestión de las ver­

siones debería molestar poco si de veras se dispone de estos programas. De lO­

dos modos, si se emple:tn otros sistemas, con un poco de maña (y derta e~ntidad de suerte) se poclt:ín utilizar también las técnie~s aquí descritas, gracias a que el fonnato .OBJ puede calificarse casi de universal. Lo que sí se puede asegurar es que los programas generados por los listados que se o frecen en este artículo fundonan correctamente.

Las cosas vistas desde Cobol

Primero, wmosa crear un progra­ma en COBOL que implemente

par: son meros w.1mings o avisos; el compilador, a l ver la cláusula COMPUTATIONAL-0, S.'lbe ya qué hacer. A su vez, definimos otras dos variables auxiliares, 01 y D2, p:tra pocler obtener por pantalla los valores de DATOl y DAT02: el verbo DISPLAY se atragant:l con las variables bln:1rias. L.1. instrucción CALL se explim por sí sola: llama al subprograma sumar uLilizando como parámetros DATO! y DAT02.

Al compilar, obtendremos el fi­cl1ero PROGRAMA.OBJ, que utilizaremos posteriormente al ·linkaro.

Si no conoces el ensamblador, y no deseas meterte en camisas de once varas, vete directamente al epígrafe Creación de la rutina e n C.

una llamada a un subprograma de la fonna más sencilla posible (fig. 1).

Listado 1: PROGRAI'IA. COB

lDENTIFICATlON DlV1SlON. PROGRAM-ID. PROGRAMA. AUTHOR. ANGEL GALVAN.

Vamos a explicar algunas peculiaridades: e l fo rmato COMPUTA TIONAl..-0 es necesa­rio p:-tra que las variables ocu­pen justamente una palabra -dos bytes- y sus wlores sean codifi­cados en binario: simplificamos así su manejo por parte de la subrutina (las variables COBOL típie~s, definidas con PIC, se implementan en BCD). Al com-

ENV!RONMENT DlVlSION. CONF1GURATION SECTlON. DATA DlVISION.

pilar, COBOL nos dará dos avi-sos como éste:

NO PICTURE; ELEMENT ARY I T EM ASSUMED TO BE BI NARY

WORKI NG-STORAGE SECTI ON. 01 DAT01 COI'IPUTATIONAL-0. 01 DAT02 COI'IPUTATIONAL-0. 01 01 PlC 99999. 01 D2 PIC 99999. PROCEDURE DlVISION. lNIClO.

I'IOVE 100 TO DAT01. I'IOVE 120 TO DAT 02. I'IOVE DAT01 TO 01. I'IOVE DAT02 TO D2. DISPLAY 01 '+' 02. CALL •sumar• USING DAT01, OAT02. I'IOVE DAT02 TO 02. DISPLAY '= ' 02. STOP RUN.

No nos debemos preocu- Fig. l . Uslodo COBOL poro llamar subprogramas

Marzo-Abril 95 Login: 7

Page 8: Revista Login:_ nº 13

Funcionamiento de l paso de parámetros

Ahora viene In ¡xlrte dura del asun­to; vamos ::t examin::tr en detalle el me­canismo CJLIC entra en ~•cción cuando se llama a un::t subnnin::t. P::trtimos ele que el lector conoce y::t qué es b pib del sistema, y cu;llcs son y para qué sin en los registros internos del microprocesador (aunque nos limitaremos a los dcl8088, comunes a toda la familia 80x86, que serán los t:micos neccs~uios).

El aspecto de la pila, antes de qu~ el program::t en COBOL ejecute 1~1 ll:lm::t­da, será más o menos ::~sí:

PO:. C1mn

cosas anteriores SS:SP

i+1 cosas anteriores

SS:SP apum:1 ::t l:t cima de la pila: i indie::t ahor::t esa mism::t direc­ción y nos servid par::t conocer la posición relativa de los posteriores elementos que entrar:ín en 13 pila.

justo después de 13 llamad::1 con dos parámetros, la pib quedará tal que así:

POS e; •~1

i-4 1P SS:SP

i -3 es

i-2 Dirección parámetro 2

i -1 Dirección parámetro 1

cosas anteriores

Este gráfico nos da ya algunas pistas par::t la creación de la rutina en ensamblador: los parámetros se pasan por referencia, metiéndose en la pila sólo los o!TSet (desplazamientos), ya que se toma por defecto el segmento DS; además, COBOL realiz.<t una lla­mada PAR 3 b rutina, por lo que mete en la pila tanto CS como IP.

Pero aún debemos hacer más: como utilizaremos Juego el registro DP p3ra obtener los valores de la pila, ten­dremos que salvar su contenido p::tra

8 Login: Marzo-Abril 95

que ::tl regresar al programa COBOL no haya problemas: esto lo haremos con PUSH BP. Eso sí: precisamente para utilizar BP como base de acceso a la pila , después hacemos MOV BP,SP. He aquí la pib después de todo esto, con la posición rebtiva de sus elementos respecto 3 BP:

POS Cima

i -5 BP

i -l, 1P

i-3 es

i -2 Dirección parámetro 2

i -1 Dirección parámetro 1

cosas anteriores -

SS:SP ó

SS:BP

BP + 2

BP +L.

BP +6

BP +8

BP+10

Los sumadores a BP crecen de dos en dos porque en la pila se intro­ducen palabras enteras, de dos bytes, y nosotros tenemos que direccionar los elementos de la pila byte a byte.

Así, las posiciones reales de los parámetros, expresadas simbólicamen­te, son:

DAT02 -> DS:[BP+6] DATO!-> DS:[BP+8]

Creación del código en ensamblador

Listado 2: RUTINA.A~M

main

sumar

segment assume cs :main

public suma r proc far push bp mov bp,sp push di push ax

Debemos tener en cuenta que el procedimiento tiene que ser públi­co (PUBLIC sumar) y ha de ser defini­do rAR, ya que de ese modo lo va a invocar COBOL. Además, tendremos que salvar en la pila todos aquellos registros que Lltilicemos dentro de la nllina, para que al regrcs::tr manten­gan sus valores. Importantísimo: el procedimiento en ensamblador debe Jlev::tr el mismo nombre que el espe­cificado en b instrucción CALL del programa COBOL: en este caso, su­mar (rig. 2).

Como se puede ver, la rutina suma los dos números contenidos en DATOl y DAT02, y deja el resultado en DAT02.

En cuanto ::ti manejo de la pila y los parámetros queda ya poco que explicar: obviamente, todo lo que me­temos en b pib lo extraemos con ins­trucciones POP. Lo que sí cabría co­mentar es la instrucción RET 4: RET de por sí devuelve la ejecución al pro­ceso llamador obteniendo (y sacan­do) ele la pila el par CS:I.P que la ins­trucción CALL había metido antes. Pero para nosotros sigue habiendo un problema: ¿qué hacemos con los va­lores imroducidos como p:trámetros? Pues tendremos que sacarlos de la pila nosotros mismos: eso es lo que hace­mos con RET 4, ya que RET x lo que hace es sumar x (en bytes) al registro SP, con lo que, al regresar, SS:SP se-

mov di,[bp+8J DI = di rec.ción del 1•• parámetro mov mov add

pop pop pop ret

sumar endp

main ends end

ax,(diJ di,[bp+6J [diJ,ax

ax di bp 4

AX = (DIJ = valor del 1•• parámetro 01 = dirección del 2 8 parámetro [01) = 28 parámetro = [01) + AX

) Rg 2: Código de Ensamblador que enlozaremos desde nuestro programo COBOL.

Page 9: Revista Login:_ nº 13

Cobol, Ensamblador y C Programación guir3 apuntando a 1::1 posición i, que es donde :~puntnbn antes. Los compiladores e h:~cen esto fuera del procedimiento, <d volver al programa llamador, con un ADD SP,x; nuestra solución es un poco más elegante, y la emplean los compiladores Pascal.

Creación de la rutina en C

Pam codificar la rutina en C hay que tener en cuent."l v·.1rias cosas: prime­ro, e introduce en l::t pila los parámetros en orden inverso a como lo hace COBOL (y el resto de los lenguajes que conozco para Il3M PC/MS-DOS). Podemos hacer dos cosas: o tenemos en cuenta esta peculiarid:~cl y, sin modilkar los progra­mas, actuamos en consecuencia (con lo que obtendríamos el resultado de la SLJma en DATO 1 en vez de en DAT02), o es­pecificamos al definir la f1.10ción C que los parámetros se pasen en el orden nor­mal. Esto se consigue con la palabra re­servada PASCAL (que yo sepa, privati\·a de Turbo C++) ¡usto antes del nombre de la función.

Segundo: los parámetros que ver­daderamente se pasan a la función e son punteros NEAH a enteros. Se puede apun­tar a CL•alquíer otr:1 cosa: pero si tene­mos la feliz idea de especificar punteros YOID que, por su generalidad, parecen venir mejor al caso, no podremos reali­zar operaciones aritméticas con los valo­res a los que apuntan, porque C no sabrá a qué demonios cst.-ín apuntando. Eso sí: la dáUSLJia NEAR es indispensable; recor­demos que COBOL introduce en la pila sólo los despl:namientos (cuyo La maño es una palabra). Obviamente, dentro de la función debemos manejar los panímctros como punteros que son.

Tercero: hemos de definir ex­plícitamente que la función ha de ser llamada con un CALL remoto, ya que de ese modo b va a invocar COBOL: es decir, introduciendo en la pila tan­to CS como IP. Esto se hace con la cliusl.!la fAR.

lle aquí el listado de la función utiliza eh:

Listado 3: RUTINA2.C

void far pascal sumar(int near *a,int near *b>

(

*b += *a; }

En este caso, no ha habido pro­blemas en cu:~nto al segmento utihza­do para los datos, ya que tanto e como COBOL toman el DS por omi­sión. Pero eso es algo que puede cam­biar si nuestra propia función en C es bastante más complicada que la aquí listada: habría que estudiar el caso particular, y tomar las medidas ade­cuadas.

Sí no podemos utilizar la palabra reservada PASCAL porque nuestro compilador e no implementa ni ésta ni ninguna parecida, tendremos que •aguantamos• y actuar en consecuen­cia: una ayuda para estos casos es dar a los parámetros de la función el mis­mo nombre que los utilizados por COBOL, pero en orden inverso, del modo siguiente:

1': introduce los parámetros en la pila en orden inverso al de COBOL y prácticamen· te el resto de lenguajes ~ara MS·DOS.

void far sumar(int near *dato2,int near *dato1>

Así no nos equivocaremos al utilizar cada uno en el cuerpo de la función. Pero hay muchos más pro­blemas si no podemos utilizar PASCAL: con una función C normal, el compilador no incluye RET x para quitar los parámetros de la pila, por­que supone que lo hará el programa llamador con una instrucción ADD SP,x; esto no lo hace el COBOL, y a falta de la palabra PASCAL, nuestra única solución es generar el código ensamblador como se indicará des­pués, modificarlo (es decir, incluir RET 4 en vez de RET) y ensamblarlo, para lo cual será útil quitar las líneas espe­ciales que C incluye en el código en ensamblador. Y eso no es todo: el pro­cedimiento, en el fiche ro objeto, ya no se llamará sumar sino _sumar (esto es algo que e hace automáticamente con todas las fun­ciones), por lo que habrá que cam­biar el nombre de rutina que especi-

ficamos en el programa COBOL en la instrucción CALL. O sea, que manos a la obr:1, suerte, y al toro.

¿Y si queremos que la fundón nos devuelva un valor?; ésm es una situación no prevista por COI30L y que, por lo tanto, no debemos ut.ilíz.ar: no nos queda más remedio que usar los parámetros (que precisamente son por referencia, es decir, son punteros) para devolver valores a COBOL. Por eso debemos especificar siempre que la función e devuelve VOID (o sea, nada).

Juntándolo todo

Una vez compilado el programa en COBOL, obtendremos un fichero PROGRAMA.OBJ; y una vez ensambla­da la rutina con MASM, obtendremos oli'O fichero RlJllNA.OBJ.

¿Cómo lo hacemos con C? Con TCC, el compilador de línea de coman­dos (es decir, sin entamo integrado) de Turbo C++,la cosa se harí:t así:

tcc -e rutina2.c

Lo cual generaría el esperado RUTINA2.0BJ. Aquí hemos de advertir de las posibles opciones por defecto que cada compilador tenga en su sistema, como información para depuradores en los .OBJ o soporte para ovedays, que nos pueden complicar la vida generando, en el mejor de los casos, ficheros objeto un poco más grandes y complejos de Jos normal, y en el peor, ficheros objeto no compatibles.

Para más información:

tcc -S rutina2.c

Con la opción -S, el compilador generará un fichero .ASM con el código en ensambladorde la función en vez de un fichero objeto. Se puede aprender mucho del funcionamiento del compilador C simplemente examinando el fichero resultante: de hecho, nos será necesario más de una Ve :l. lo que se ob­tuVO con RUTINA2.C lo podemos ver en la ftg. 3 de la siguiente página.

Aparte de un montón de cosas raras, podemos ver el gran parecido que tiene con nuestro propio RUTINA.ASM: incluso utiliza igualmen­te RET 4 para desembarazarse de los parámetros (siempre que hayamos incluido la cláusula PASCAL, claro). De

Marzo-Abril 95 Login: 9

Page 10: Revista Login:_ nº 13

todos modos, e se tiene que preocu­par de muchas más cosas que noso­tros cuando programamos en ensamblador: de alll que tanto Sll

.t\SM como su .0~1 sean más compli­cados que los nu~stros. Lo que sí nos ayuda a comprendt•r el listado son los comentanos incluidos, donde sc in­sertan las correspondientes lineas en e que generan bs instrucciones en ensamblador inclicad::ts.

enbzador de Microsoft UNK (en con­creto, la versión 3.00):

Link prog -+ rutina, o hien Link prog + rutina2

Lo primero enlaza el programa COBOL con nuestra rutina en ensamblador: lo segundo hace lo mismo pero con la fi.mción en C. LINK roma por defecw las extensiones .OBJ.

Una indicación: LJNK debe es­tar en el mismo directorio que las li­brerías estándar del lBM COBOL, es

Ahora nos qul)d:l cnht7.ar los módulos .OBJ; lo h::trcmos con el

Listado 4: RUT1NA2.ASM

ifndef ??version ?debug macro

endm $e o mm macro na me, di s t, si ze, count

etse

comm di!:t name:BYTE:count*size endm

$comm macro name,di st , si ze, count comm dist name[sizeJ:BYTE:count endm endif

?debug s •a: ruti na2. e• ?debug C E9f24C241EOB613A727574696E61322E63 RUTINA2 TEXT segment byte public 'CODE' RUTINA2_TEXT ends DGROUP group DATA,_BSS

assume cs:RUT1NA2 TEXT,ds:DGROUP _DATA segmen t word publ i e 'DATA' diíl lebel byte diílw labelword _DATA ends _es s segment word publ i e 'BSS' biíl Label byte bólw Label word _BSS ends RUTINA2 TEXT segment byte public 'CODE'

, ; void far pascal sumar(int near *a,int near * bl

assume es:RUTINA2_TEXT SUMARproc far

push bp mov bp, sp

{

*b += *a;

mov bx,word ptr [bp+8J mov ax,word ptr [bxJ mov bx,word ptr [bp+6J edd word ptr CbxJ,ax

}

pop bp re t 4

SUI'lAR endp ?debug C E9 RUTINA2_TEXT ends _DATAsegment word public 'DATA' siíl labelbyte _DATAends RUTINA2_TEXT segment byte public 'CODE' RUTINA2_TEXT ends

public SUMAR end

Ag. 3: Fichero ASNI generado al compilar RUTINA2 e con lo opción -S de lec

10 Login: Marzo-Abril 95

decir, COBOLl.LIB y COBOL2.LIB; si no, el monL'l¡e fall::tr.i, y LINK pedirá la unidad en la que se encucntr:l.n di­chas librerías.

Pero aL'in h::ty más; si en nuestro código en en53mbbdor lu~mos utilizado rutinas ~xtcmas diferentes que se en­cuentran en otros ficheros .O~J ó .UB, tenemos que decírselo a LlNK. Del mis­mo modo, hemos dt> espcdfic:!r qué li­brcrí::ts ( .LI B) o ficheros ob¡eto (.OBJ) tenemos qut.> enla;-.ar si hemos utilizado funciones de la librería estándar, u orrns mu~strns, en nuestra función C. Por fortun::t, no estamos en ninguno de los dos casos, y LINK no nos de­bería dar prohlt:m~ts si le invocamos como hemos dicho antes.

Otra ClJcsllón: siempre que nuestro programa ensamblador llame a otra rutina extema o, por qué no, a liO:l función t:n e, haremos bien en salvar todos los registros en la pila, p:tra, despu~s de c¡t•cut:lr la llamada, recuperar sus v:1lores. Cuando se tra­te de 1:1 función en C. nos tendremos que fiar de la coherencia interna que tanto el compil:lclor COBOL como el de e mantengan.

Si no especific.'lmos nada, obwn­drcmos un J> ROG. EXE en los dos ctsos, que ser:í el J'ichero 11nal e¡e<.:utable, don­de si todo ha funcionado bien (y vuel\'o a repetir que todo lo aquí presentado ha sido comprobado) veremos qL•e el enla­ce funciona com,~ct:llnentc. Para que PROG .EXE h.1ndone dcbcr::í cxistir en su directorio el fichero COBRUN.EXE, sin cL•ya presencia los program:ls en lBM COBOL no se ejecut:.~n.

Consideraciones finales

1) Si los compil:tdorc:>, cl en53mbbdor o el montador mdicascn qu~ no han podido •~lliz:.1r sus funciones por no haber encontrado ciertos ficheros, debernos decirles dóndc pLK'den encon­tmrlos, o ponerlos ¡usto donde los pro­gramas los ,·an a buscar. En estructu­ras de dirL·cto•ios m3s o menos habi­tuales no debería cxtsLir ningún pro­blema.

2) E .. xiste b tentación de uS:lr otros montadores difer('nLes a LINK, como el incluído en nuestro compil::tdor o ensamblador. Por supuesto: en estos casos, las cosas no funcíonarán l:ll y como aquí describimos, pero quizá el

..

..

Page 11: Revista Login:_ nº 13

Cobol, Ensamblador y C Programación esfuerzo empleado sea compens:~do con las \'entajas que nos ofrezcan

.3> Lo que s1 sera d•d:1ctico y nos dar:.í alguna infonn:tcion será pe­dir ;¡) montador <sea cual fuere) un fichero .MAP donde vendrán descri­tos todos los elementos de los módu­los .OBJ uuliz:~dos, con datos sobre cada uno de ellos, como su t~unaño

4) Cuidado con mc7clar cosns raras; me explico. llamar a otras fun­ciones, definir estructuras ele datos complicadas, o utilizar técnicas avan­zadas (por ejemplo, memona clin:ími­ca) dentro de ntleStra !unción C plle­dc que se le atragante a CORO!., poco acostumbrado a estas ·peripecias•. Normalmente, con un poco de estu­dio y cxpcritm:ntación sobre cómo hacen las cosas COBOL y C, no se nos debe negar nada de lo que se nos ocurm h<•ccr: en concreto, la tlli­lización ele gráficos o estructuras de datos din:ímicas dentro ele un progm­ma COBOL es de lo más tentador, aun­que seguro que nos dar.í más de un quebradero de cabeza Personalmen­te, apenas utilizo estas técnic:ts, y st lo hago es sólo para cambiar la forma

del cursor o gesrionJr el teclado de una m:mer.t más eficiente y comple­ta, poco más.

5) Ojo con las variables COBOL: la cl:íusub COMPUTATTONAL-0 se nos puede quedar pequeña, aunque sea la más apropiada; igual que ames, la experimentación será la que nos dic­te cómo manejar otro tipo de varia­bles, y:t .sean de orra clase COMPUTATIONAL o definidas con PICTURE.

~L . . ' 1 a expenenc1a sera a mejor maestra para aplicar estas técnicas, al ser escasa la docu-~mentación existente.

6) El mejor modo de demos­trar que la informática es la ciencia menos exacta de todas es programar en ensamblador: no sólo no obten­dréis los resultados esperados en un princ1pio. sino que además serán de una aleatancdacl (puede que peligro-

sidad) nuncn vista. Preparaos pnr:t pulsar RESET m:ís de una vez ...

7) Dicho lo cltcho en el aparta­do 6, no puedo por menos ele librar­me de toda responsabilidad en el uso de las técnicas y/o listados aquí des­critos por parte de los lectores. A mí me han funcionado, pero no quiero que me hagan responsable de pérdi­da..c; o comportamientos extraños cau­sados por utilizar sistemas diferentes o por errores al teclear los listados.

Para acabar, apuntar que la ma­yoría de lo aquí dicho es fntto de la experimentación y no de l:t documen­tación, que siempre es escasa en es­tos temas. En parte, h~•y que pagar las grandes ventajas que obtenemos con cieno grado de riesgo: de seguro que las cosas no funcionarún a la primer:t.

¡Ánimo, tladlc vitlilla al COBOL!

Blbllogratra • ROD\UGUEZ·I{OSELLÓ, 1-l.A.; Hfi88·

S(J..%18087 PmBt:IIII:H'ICin ..:n t:n...;uu-11i:1dor t:n t'n· tomu I\IS 1>0.\: 1-'Al Anay:1.

• !im C!.'pc.'Ci0~~1r· 1'11rf10 C ++ Pmxr.mUik!r:, Guiclt'clc lo' manu:~lc., nrogin:Jic, clc 11<>rl:mcl.

· OONNI N, C:.. f/ COBOL dd IIJM·PC, Ed. Gu.,wvo Gih •

THE BEST CHOICE Cl DOMINGO MARTINEZ, 21 TLF:47 38 46 FAX: 47 38 46

PROXIMA APERTURA EN PALENCIA

VALLADOLID -4Mb de memoria RAM de 72 contactos (32 bits). - Disco Duro de 428 Mb. - Floppy de 3,5" Alta Densidad. -Tarjeta Gráfica Super VGA VESA 1 024x768-l Mb. ·Monitor Super VGA Color 1024x768 Baja Radiación. - Placa madre Green Pe con zócalo Z IF. - 3 Slots Vesa Local Bus en 486 - Caja Minitorre con Display.

* 486/Dx II 66,256 Kb de Caché ........ 119 .900 Ptas.

- CD-ROM x2 ........................... 16.896 Ptas. * 486/Dx IV 100,256 Kb de Caché ..... 129.900 Ptas. · CD-ROM Mitsumi x4 ............. 29.985 Ptas. · Sound Blastcr Pro .................. 11 .239 Ptas. - Sound Blaster 16 ..................... 13.900 Ptas. • Impresora I-IP 540 .................... 38.966 Ptas. - Impresora Canon BJ200ex ........ 39.224 Ptas. -Impresora Canon BJC4000 ....... 59.828 Ptas. -25 Discos Bulk de 3 1/2 II.D ..... 1.293 Ptas.

* PENTIUM 60(8Mb Ram- INTEL ) .. 195 .000 Ptas. * PENTIUM 90(8Mb Ram- INTEL) .. 239.900 Ptas. * PENTIUM 90(8Mb Ram - INTEL ) .. 259. 900 Ptas.

5 AÑOS DE GARANTIA

FINANCIACION HASTA EN 12 MESES Marzo-Abril 95 Login: 11

Page 12: Revista Login:_ nº 13

Historia 1 nformática

Charles Babbage: Mecánica apHeada a la eompntaeión Aunque el desarrollo de los ordenadores como grandes artefactos para la realización de cálculos, primero, y como utensilios de trabajo en hogares y oficinas, después, se ha efectuado en la segun­da mitad de este siglo, hubo un precursor de la computación automática, que construyó máquinas que según la crítica histórica exigían más de lo permisible por la ingenería de la época. En este artículo el lector podrá hacerse un juicio más objetivo sobre el excéntrico profesor Charles Babbage.

)OSÉ MARÍA C UENCA DL LA CRUZ

Se considera a Charles Babbage(ma temático inglés profesor en Cambridge, que vivió ent~-e 1792 y

1871 para más señas) como el precursor de las ciencias informáticas; tanto por es­tablecer los conceptos teóricos en que se basa actualmente la arquitectura de computadores, como por diseñar sus má­quinas analítica y de las diferencias: au­ténticas pioneras de las calculadoras digitales, pese a basarSe en ptincipios puramente mednicos, lo que constitu­ye todo un alarde ele ingeniería.

El tal sujeto era un bicho raro ya desde estudiante en el 1/inity College: aficionado a repasar los en·o1-es de cálcu­lo, Lransctipción o tipográficos que se aa.1mulaban en las tablas rnatemáticas de la época cual raLón de biblioteca, se le ocunió la genial idea de constmir una máquina capaz de recopilar las tablas de logatitmos, que por aquel entonces ape­nas tenian un siglo de antigüedad.

De carácter muy excéntrico, se movía en círCLilos privilegiados, donde lo hacían también Chades Díckens, Píen-e S. de La place o Charles Darwin, lo que le dotaba de una visión de la 1-ealidad muy avanzada para su época. Pero el desa­n-ollo de sus progresos más allá de la pura teoría se vió limitado por su mal carác­ter: obligaba a sus empleados a desmon­tar sus máquinas para volver a recons­trui rlas de modo más complejo a medi­da que se le oCLirrían nuevas ideas una y otra vez; lo que a la larga acabó dejándo­le sin fondos para seguir adelante, y sin nadie interesado en financiar sus inter­minables empresas. Intolerante con las intromisiones, llegó incluso a intentar procesar al gremio de organilleros por-

12 Login: Marzo-Abril 95

que le molestaban en su trabajo, lo que provocó que los niños de la vecindad fi..1cran tras él por las calles burlándose y C.:'lntando al son de incipientes Latas de conserva.

Pero todo esto no quita un ápice a su gran talla como matemático e inge­niero. Su ptimera calculadora digital fue inventada en 1822 para el Servicio ele Con-eos Biitánico; detenninaba valores sucesivos de funciones polinómicas uti­lizando solamente la operación de adi­ción, mediante el método de las diferen­cias finitas: pa1tiendo de los valores ini­ciales conocidos ele una sede de poten­cias obtenemos los demás mediante la realización ele restas entre valores con­secutivos hasta obtener una columna de un valor constante; y retroceder suman­do hasta el valor siguiente que desea­mos obtener, como se ve en la figura 1 para las segundas potencias de x.

Como no disponía de conmuta­dores eléctlicos para imitar el álgebra booleana, se vio obligado a sustituirlos en todos sus diseños con inlenuptores mecánicos a base de barras, cilindros, cre­malleras y medas dentadas. Todo el sis­tema estaba basado en

X~

1 4 9 16 25 36

la práctica equivale a un resultado co­rrecto como solución, o al CLie!gue de b máquin::1, pero nunca a un resultado em5-neo.

La primera máquina inicial fue desarrollándose más y más en lo que se dio en llamar artilugio de diferencias, hasta que tras diez años de trabajo el proyecto se vino abajo debido a las r:lZones ex­presadas más arriba, y a su elevado cos­te: se habían invertido 17.470 libras de 1834, unas veinte veces más de lo que costó desan-ollar la locomotora de Bull. Aunque después de todo Charles no perdió sus esperanzas, porque los pro­blemas tecnológicos de diseño y fabtica­ción de las 25.000 piezas realizadas has­ta la fecha estaba demostrado que po­dían salvarse. Además una parte (ali-ede­dor de dos mil piezas) se aproved1ó como máquina de exhibición, fonnando la ptimera ca!CLiladora automática de so­bremesa conocida ... que ha seguido fun­cionando con·ectamente hasta hoy con una precisión d e hasta 21 cili-as.

Tras este fracaso cobró nuevas fuerzas haciendo gala al dicho ·lo que no mata hace más fuerte• y emprendió has-

1l diferencia 4-1= 3 9-4= 5-16-9= 7 25-16= 9 36-25= 11 11 t2= 13

z• diferencia 5-3::::. 2 7-5= 2 ~9-7<= 2 11-9= 2 2

la numeración d ecimal, de forma que cada una de las cifras de un núme­ro se representaba por una rueda dentada , y su valor por la rotación an­gular asociada a ella. Este funcionamiento hace que sólo sean posibles las rotaciones con-espon­dientes a valores numé­ticos enteros, lo que en

X

1 2 3 4 5 6 7 36+13= 49

Fig 1· El método de las diferencias finitas nos permite hallar los valores de funciones polinómicas empleando únicamente sumas en la operación. En este ejemplo se resuelve x2 para los primeros números naturales.

) )

) (

}

Page 13: Revista Login:_ nº 13

1 l

ra su muerte lcbro) el desarrollo de los phmos y bocetos del ingenio al que le debe ~u fama de pionero en la informá­tiGI: la máquin:~ analítica, primer:~ com­putadora universal y programoble ... . ¡y mecánica!

Correctamente pretendía que las operaciones aritméticas se realizasen en un procesador similar a su máquina an­terior, aunque mucho m:'is complejo; provinienres ele un almacén de tarjetas perfor:~cbs como el usado por);1cquard en su tebr automático; imprimiendo los result:~dos en t:~rjet:~s V<lCÍ:1S que irían a almacenarse ele forn1:1 ordenad;:¡ de ma-

~a máquina podía reci- " bir datos de hasta 50 dígitos y dar resultados ~e hasta 100 dígitos.

ner:~ que fuese posible su recuperación en un momento posterior. Unas peque­ñas campanas avisa lÍan al empleado, para introducir nuevas tarjetas; y otras mayo­res indicarían los fallos del sistema. El in­vento de la sirena para la hora del al­muerzo creemos que es posterior.

Para hacernos una idea de lapo­tencia ele tal máquina, sólo decir que es­taba diseñada para recibir elatos ele hasta 50 dígitos y dar resultados hasta ele 100; en formatos impreso y gráfico además de la tarjeta perforada. La enormidad ele este proyecto hizo que enseguida las ideas del genial invemor se viesen ümi-

CENlRO Ol. ESH IDIOS

PLAZA PI91WI~

Bobboge Historia 1 nformótico radas por In escasez de medios en la época: una máquina de estas caracterís­ticas no poel[a ponerse en funcionamien­to de fonm1 práctic-..1 sin ayuda de la elec­tricidad, y sobre todo de In electrónica, aún no descubierta. En espera de estos avances, nuestro amigo optó por desa­rrollar mecanismos capaces de realizar autom.<íticamente multiplicación y divi­sión, sin tener que remitir éstas a las ope­raciones b;ísicas: era la segunda tmíqui­n<~ de bs diferencias, de diseño mucho más evolucion:~clo y económico, cap:~z de tabul:1r hasta !:1 séptima potencia con una precisión de 31 dígitos.

l.a máquina es accionada median­te una manivela solidaria empleando engranajes con una ntecla vertical ele 14 pares de levas, encargadas de activar y sincronizar cada ciclo de cálculo. Los nl"t­meros producidos mecliame el giro ele los engranajes se ret1ejan en 8 colum­nas verticales de 31 ruedas cada una, con 10 dígitos por nteda. La adición de dife­rencias se realiza mediante un sistema de cremalleras y palancas que, acciona­das por las levas, bajan o alzan los ejes verticales, haciéndoles girar hasta su po­sición final. El ciclo de trabajo se divide en dos p::utes para redudr e l tiempo de dlculo, como en la técnica de bombeo o pipeliningde los ordenadores electró­nicos actuales: primero se suman los va­lores de las columnas impares a las pa­res; y seguidamente los registrados en las pares a las impares; de forma que a cada vuelta de manivela se produzca un nuevo valor y deje a la máquina lista para generar el siguiente.

Fig. 2: El Ingenio de Diferencias.

Un attilugio así es e l que ha sido construido con motivo del bicentenario del nacimento de l3abbage por el mu­seo de la Ciencia ele Londres, en donde puede contemplarse si a lguna vez tene­mos ocasión de pasar por alli (visita obli­gada para los informáticos, como para un paleontólogo el Museo de Historia Natu­ral). Su realización deja bien patente lo correcto ele las ideas del matemático en lo tocante a l empleo de elementos me­cánicos para realizar operaciones com­plejas: el primer cálculo produjo las pti­meras potencia.s ele 7 correctamente. Solo tiene un pero : su precio, de unos 50 millones de pesetas, hace que sea eso, una pieza ele museo. •

r•···1 ECONÓMICAS y EMPRBSARIAI.ES • .ARQUITECI'URA • CIENCIAS

1 •• 1

MAYOR INFORMACIÓN Centro de Esntdios Pza. Mayor, 7, 1º

Teléfon~: 352885-352330 47001 VAllADOLID

E. U. PO~CNICA • GRADU.ÁDOS SOCIALES • INGENmRfAS • MAGISTERIO BIOI!STADtmCA -~ PoúnCA -lW:IENDA PúBLICA- DERP.aro ~ - FsOLOGfA

INFORMÁTICA

MATRíCULA GRATI.JITA

Windows MS-DOS Wn..-n...:orT.a,. Autocad dBASE IV

Novell Clipper

Marzo-Abril 95 Login: 13

Page 14: Revista Login:_ nº 13

Inteligencia Artificial

Introdneeión a las redes neuronales artificiales De la prehistoria al futuro que tal vez Babbage nunca soñó. El desarrollo de máquinas que puedan imitar la capacidad de aprendizaje del hombre es actualmente un desafío en el que pone sus miras buena parte de la comunidad científica. con esta amplia Introducción a las redes neuronales, pre· tendemos dar a conocer los elementos básicos de lo que comúnmente se denomina Inteligencia Artificial, para así comprender de qué modo pueden llegar a «pensar» v «aprender» las máquinas.

ALFREDO CATALINA GALLEGO

El hombre se ha cardcterizado siem pre por una bt1squecla constante de nuevas vías para mejorar sus

condiciones de vida. Estos esfuerzos le han servido para reducir el trabajo en aquellas operaciones en las r¡ue la fuer­za juega un papel primordial. Los pro­gresos obtenidos han permitido dirigir estos esfuerzos a otros campos, como por ejemplo, a la construcción ele máquinas calculadoras que ayuden a resolver de fonna automática y rápida determinadas operaciones que resultan tediosas cuan­do se realizan a mano.

Uno de los primeros en acometer esta empresa fue Charles Babbage, quien trató infructuosamente de construir una

Fig. 1 Detalle de una neurona

14 Login: Marzo-Abril 95

máquina capaz de resolver problemas matemáticos. Posteriormente otros tan­tos intentaron construir máquinas simila­res, pero no fue hasta b Segund'l Guerra Mundial, cuando ya se disponia ele ins­trumentos electrónicos, que se empeza­ron a recoger los primeros frutos. En 1946 se construyó la primera computadora electrónica, ENIAC. Desde entonces los desarrollos en este campo han tenido un auge espectacular.

Estas máquinas permiten implementar fácilmente algoritmos para resolver multitud ele problemas que an­tes resultaban engorrosos de resolver. Sin embargo, se observa una limitación un­portante: ¿qué ocurre cuando el proble­

ma que se quiere resolver no ad­mite un tratamiento algorítmico, como es el caso, por ejemplo, ele la clasificación de objetos por ras­gos comunes?. Este ejemplo ele­muestra que la construcción ele nuevas máquinas más versátiles requiere un enfoque del proble­ma desde otro punto de vista. Los desarrollos actuales de los c ientí­ficos se dirigen al estudio de las capacidades humanas como una fuente de nuevas ideas para el diseño ele las nuevas máquinas. Así, la inteligencia artificial es un intento por descubrir y describir aspectos de la inteligencia huma­na que pueden ser simulados mediante máquinas. Esta discipli­na se ha desarrollado fuertemen­te en los últimos años teniendo aplicación en algunos campos como visión artificial, demostra-ción de teoremas, procesamiento

de infonnación expresada mediante len­guajes humanos ... etc.

Las redes neuronales son otra for­ma de emular otra ele las características propias ele los humanos: la capacid.1.cl ele memorizar y asociar hechos. Si examina­mos con atención aquellos problemas que no pueden expresarse a través ele un algoritmo nos daremos cuenta ele que todos ellos tienen una característica co­mún: la experiencia . El hombre es capaz de resolver estas situaciones acudiendo a la experiencia acumulada. Así, parece claro que una forma de aproximarse al problema consista en la construcción de sistemas que sean capaces ele reprodu­cir esta característica humana. En defini­tiva, las redes neuronales no son más que un modelo artificial y s implificado del cerebro humano, que es el ejemplo más perfecto del que disponemos de siste­ma que es capaz de adquirir conocimien­to a través ele la experiencia. Una red neuronal es ·un nuevo sistema para el tratamiento de la infom1ación cuya uni­dad básica de procesamiento está inspi­rada en la célula fundamental del siste­ma nervioso humano, la neurona•.

La neurona y la sinapsis

El cerebro humano contiene aproximadamente 12 billones de células nerviosas o neuronas. Cada neurona tie­ne de 5.600 a 60.000 conexiones dendríticas provenientes ele otras neuronas (figura 1). Estas conexiones transportan los impulsos enviados desde otras neuronas y están conectadas a la membrana de la neurona. Cada neurona tiene una salida denominada <lXón. El

Page 15: Revista Login:_ nº 13

Redes neuronales 1 nteligencia Artificial conL'lCLO de cad:t :txón con una dendnL'l se realiz:t :1 tr:t,•és de: la sin;lpsis. Tanto el axón como l:tS d~ndrit.'ls t~nsrniten b señal ~n un:t lJOict dirccdón

La sinapsis (figura 2) consta de un eJ~c'trcmo prcsin:íptico de un axón conec­t:tdo a un extremo postsin:lptico de una dendnl:l, ex.isti~ndo 1101malrncme entre éstos un espacio <.hmominado esp:1do sindptico.

Las neuronas son elécttiCll11ente activas e inter..tctúan entre ellas me<.!ian­te un flUJO de c.'OITÍCnlCS ~léctric:.tS loct­les. Estas CotTicntcs se deben a clifercn­ci::ls de potencial entre las nwmbr-:tnas celulares de bs 11l'uronas. Un impulso nervioso es un c:unbio de volta¡c que ocum."! en una zona lo<:alizada de 1:1 mem­brana celltl:lr. Elimplllso se tmnsmite a lr:t\"és del :1xón hasw llegar'' 1:\ sinapsis, produdendo I:L libc~ción ele un:1 SliSt:.ln­cia químic:t denomin:1da ncurotmnsmisorque se csparn• por el Ouido exiStente en el espacto sin:lptico Cuando esw Ouido ak:tn7~1 el otro extre­mo transmite b señ.ll :1 b dendrita l.os tmpulsos recibidos desde la stnapsts se suman o reSt:ln a l:t magnitud de las ,·a­riacionesdcl potl'tKial de la m~..·ml>r~tna. Si las contnbucton1..·s totales :llctnzan un ,·alor deterr11111ado (:tlrcdcdor de JO milh·oltios) se cilspar:tn uno o más im­pulsos que se propagar:ín a lo brgo del axón.

r ' Las redes neuronales son nuevos sistemas para el tratamiento de la información inspirados en la neurona humana. ~ ~

Aunque Lod.l vía no l'SL:í dl'llodo claro. parece que e~te impulso se inicia t:n la conexión entre el axón y la mcm­brnna. Su amplitud y velocidad depen­den del dtámctro del axón}' su frecuen­Cia del núm('ro ele disparos que St..' efec­túen.

L=ts redes ncuron:lles .1111fietales basan su funcionamtcnto en lns redes neuronales re~tles, cstnndo form:tcbs por un con¡unto de unidades ele procesa­rruemo concct:td:.ts entre sí. Por analogía con el cerebro humano se clcnominn •nCll­rona· a cada un::1 de estas unidades de

procesamiento. Cada neurona re­abe muchas señales de entrada y envía una única señal de saHda (como ocurre en las neuronas rea­les).

El modelo de McCulloch­Pitts

Uno de los primeros mo­delos m:nemáúcos de una neuro­m fue el propuesto por ¡\kCutloch y PitLS en l 943 y es en el que se basan las redes neuronales actua­les.

En este modelo (figura 3) cnda ncuron::1 consL3. de un con-junto de entradas, s:, ~' una sol::t salida S. Cada entrada iestá afee-

Rg 2: Elementos de lo sinopsis

¡ Lada por un coeficieme que se denomi-na peso y 4ue se representa por la letr:t 11

11 (gr:Hic:uncme suele representarse

corno una media luna). El subíndice i rcfle¡:t que el peso afeC[a a la entr:tda i, y el subíndice ¡que se trata de la neuro­n:~¡.

L'l cantidad calculad~• como la suma del producto de cada cnlr.lcb mul­tiplietda por su respecth·o peso se de­nomina :JClii':Jción el~.· la neurona. x . La

1 salida. S~ de la neurona es una función de b :l(."tÍ\~tctón de ésta. Es decir:

S l

= f(x ) l

w + e 'l l

donde el ténnino 81es un valor•umbral·,

y f(x)cs una fundón de la activación ele la neurona.

Por ejemplo, en una de las pri­meras arquitecturas neuronales, el ·Perceptron•. se utiliz:t la siguiente fun­dón de salida:

SÍ X l

si x l

< h ~ h

donde la consL:Jnte h se denomina um­bml f:st:t es una función de salida de tipo binaria, y existen otms de tipo lineal puro, lineal con umbr:tl. y sigmoidea. entre otras.

En este modelo tan sencillo pue­de verse que la acliv:ldón de la neurona depende del valor que tomen los pesos y las emrndas, de lonna que la \'ariaaón ele éstos otigina clistintas salidas para la misma ent.rada a la neurona. En la prácti-

ca, los pesos de bs nt•uron:ts se modifi­can sometiendo a la red a un cntn:n:.l­miento, permitiendo que la red realice una función dcteiTllinada Est.'l es b ca­r:tcteñstic• que diferencia a una red neuronal de una m.'íquina algoritmic:t cl:í­sica· una red neuronal no se prog~ma,

se ·educa·. La red es capaz de retener y asociar el conocimiento a tr.tvés de la ad.a ptactón de los pesos de bs neuronas siguiendo una regla de :1prcndiz:1jc. Es­L'ls r~glas son ccundones c"-presndas en flmción de las entradas y salidas ele las neuronas y desoiben la foiTlla de \-:tria­ción de los p~.sos. En definitiva, son el instrumento empicado por lns neuron:tS par:t adaptarse a 1:1 información que se le pres~nw.

EJ aprendizaje de una red se pue­de proclulir de tres formas:

• Aprendizaje supervisado: con­siste en introduc..ir una sede de p:~troncs ele entrada a 1:1 nxl y a Sll v~..·z mosli~tr la salida que sc quicrc Lcm:r. ~~ rcclcs <.::i­

paz de :tjlL'>tar los pesos ele l:tS nclll'onas de forma qL•e a l:t prcscnwción posterior de esos patrones de entrada l:t red res­ponde con s.11icb mcrnori7.ad:t.

• Aprcndi:~.a¡e no supervisado: se prcsent:m los patrones de cm~da ~~ la red y ésw los clasifica en cncgorias se­gún sus rasgos m:ís sobresalientes.

• Apr-endiz:tje nutosupenisado: la propi:~ red conigc los cn·orcs en la inter­prewdón emplmndo una n.>alirnent.'lción.

Una de las primcms reglas de aprendiza¡e fue propuesl:J por Donald Hebb en 1949, y se basa en un hecho biológico consunado: cuando dos neuronas se actlv:m simultáneamente su

Marzo-Abril 95 Login: 15

Page 16: Revista Login:_ nº 13

conexión se refuert.a Esta idea se ex­presa maremátic:~mcntc como:

dw " --=a S x

1 1

dt Desarrollo histórico de las redes neuronales Partiendo de que las redes neuronales se fundamentan en el sistema nervio­so humano deberíamos remontamos a los tiempos de Galeno en los que ya se tenb un conocimiento conside­rable de éste. Sin embargo, los verda­deros avances en neurología se pro­dujeron a partir de la segunda mitad del siglo XIX. 1 nvestigadores ilustres de esta época son .Jackson, Ramón y Cajal y Golgi entre otros.

Fue en 1943 cuando Warren McCulloch y Walter Pitts propusieron el clásico modelo de neurona en el que se basan las redes neuronales actuales. Seis años después, en 1949, en su libro Tfle Organizarion ofBclwvior, Don:~ld Hebb presentaba su conocida regla de apren­dizaje.

En 1957, Fmn.k Rosenbl:m presen­tó el Perceptron, una red neuronal con aprendiL<'l¡e supervisado cuya regla de aprendtz.:tje era una modificación de la propuesta por Hebb. El Perceptron tra­baja con patrones de entrada binarios, y su funcionamiento, por tratarse de una red supervisada, se realíza en dos fases: una primer.1 en la que se presentan bs entradas y la salidas deseadas; en esta fase la red aprende la salida que debe dar para cada entrada. La principal apor­tación del Perceptron es que la adapta­ción de los pesos se realiza teniendo en cuenta el error entre la salida que da la red y la salida que se desea. En la fase siguiente, de opernción, la red -es capaz. de responder adecuada me me cuando se le vuelven a presentar los patrones de entrada. Se crearon grnndes expectati­vas sobre sus aplicaciones, que poste­rionneme se tomaron en gran decepción cuando en 1969 Minsky y Papen demos­traron las grandes limitaciones de esta red

En los años 60 se propusieron otros dos modelos, también supervisa­dos, basados en el Perceptron de Rosenblatt denominados Adallne y Madaline. En estos, la adaptación de los pesos se realiza teniendo en cuenta el error, calculado como la diferencia entre la salida deseada y la dada por la red, al igual que en el Perceptron. Sin em-

16 login: Marzo-Abril 95

S· J

Fig. 3: Modelo de neurona de McCulloch-PiHs

bargo, la regla de aprendizaje emplea­da es distinta. Se define una función error para cada neurona que da cuen­ta del error cometido para cada valor posible de los pesos cuando se pre­senta una entrada a la neurona. Así, la regla de aprendizaje hace que la vanación de los pesos se produzca en la direcdón y sentido contrario del vector gradiente del error. A esta re­gla de aprendizaje se la denomina Delta.

La era moderna de las redes neuronales artificiales surge con la técni­ca de aprendizaje de propagación hacia atrás o B;Jck Propagation. La eslrUctunt de las redes citadas anteriormente (Perceptron, Adaline y Madaline) consta de dos capas: una capa primera formada por unidades que dejan pasar la entrada y que no tienen aprendizaje, y una se­gund::~ capa formada por una o varias neuronas en el caso del Madaline. L'l con­tribución de Minsky y Papen fue la de demostrar que una red del tipo Pcrceptron no es capaz pe aprender to­das las posibles combinaciones entre entradas y salidas. La solución del pro­blema consiste en añadir capas interme­dias de neuronas, introduciendo de esta forma el problema de cómo enseñar a estas capas intermedias. Aquí es donde tiene imponancia el algoritmo de pro­pagación hacia atrás. En éste se compa­rn la salida real con la salida deseada. La diferenda entre ambas constituye un error que se propaga hacia atrás des­de la capa de salida hasta la de entra-

da permitiendo así la adaptación de los pesos de las neuronas intermedias mediante una regla de aprendizaje Delta. Sin embargo, también tiene sus limitaciones.

Posteriormente se han desarrolla­do otros modelos que permiten un aprendi~tje no supervisado como el mapa auto-org::miz.ativo de Kohonen, los basados en la Teoría de Resonancia Adapmtiva (ART) de Grossberg y Carpemer, o los modelos de control mo­tor de Bullock, Gaudiano y Grossberg, entre otros.

El Perceptron A continuación se mostrará el

funcionamiento de una de las redes neuronales clásicas, el Percepcron de Rosenblatt. Su importancia es más bien histórica puesto que las limitaciones que presenta hacen que en 1:1 actualidad no se emplee en aplicaciones prácticas. Se ver:l en primer lugar la estructura del Perceptron, a continuación se detallaci su funcionamiento y por último se mos­trará el código fuente en C de un pro­grama que realiza una simulación por ordenador de un Perceprron, donde pue­de verse cómo es capaz de aprender funciones lógicas de tipo OR y AND.

• EsTRUCTURA Un Perceptron consta de dos

niveles o capas (fig.4).EI primer nivel, podemos decir que está compuesto por un número limitado de unida­des de entrada, denominadas unida

Page 17: Revista Login:_ nº 13

Redes neuronales 1 nteligencia Artificial des sensori:tles, que en nuestro ejemplo son dos. El segundo n1vel está compues­to por un número de unidades de salida, denominadas unid;lCies de :lsOCi;lción, cuyas entradas son las sahdas de las uni­dades de entrada ponderadas por unos pesos. En el ejemplo sólo se empleará una neurona en la capa de s~thcla. Las unidades de entrada tienen una sola en­trada correspondiente a una de las en­tradas a la red, y una sola salida. Estas unidades transmiten la señ:1l que apare­ce en su entrada.

• FuNCIONAMIENTO

El Pcrccptron se diseñó para tra­baj:u con parrones de entrada y salida de tipo binnrio. Así, la salida será 1 cuan­do b activación de la neurona alcance un valor y O en caso contrario.

Según lo expuesto, la activación de la neurona del segundo nivel parJ un umbral O se calcub, en el ejemplo, como:

XI= SI wll + sl wl¡

donde s, y 51

son las entmdas, y w,, y w

1, sus correspondientes pesos.

La función de salid:l vendrá de­terminada por:

{1 Si x

1 > h

0 SÍ x1 ~ h

donde hes elumbr:ll. L:1 regla de aprendizaje que se

emplea para la adapt:1ción de los pesos está basada en el error. Durante la fase

ele aprendizaje se presentan a la red los patrones de entrada y b s:~lida b

1

deseada para > h cada entrada. El error viene dado por la diferencia entre la salida deseada b,. y la salida real de la neurona, 5

1• Es decir:

ó = b -S 1 1 1

Veamos el mecnnismo de vnrin ción de los pesos:

• Sí la entrad<1 fue correctamente categoriz<1da (es decir, que b salida de la ncuron:l corresponde con la s:tlida de­seada), entonces no se h:~ce ning(m cam­bio.

• Si la salida es 1 cuando deberín ser O, entonces los pesos y el umbral se modifican de la siguiente manera: en primer lugar se incrementa el umbral en una unidad, para hacer menos probable la activadón ele b neurona. Si l::t entrada i, es O, emonces no se h<1ce ninglln cam­bio en su peso, puesto que esta entrada no ha contribuido a activar la neurona. Por el contrario, si la entrada i, es 1, se decrementa su peso w, en una unidad. En el otro caso en el q ue b salida es J cuando debiera ser un O, los cambios que deben hacerse son los opuestos.

El método requiere que cada pa­trón de entrada y salida se presente a la red las veces necesarias hasta que ni los pesos ni el umbral varíen. Por otro lado, el cambio en el umbral y en los pesos se expresa matemáticamente como:

~h =-B. 1

~w. = óil ' 1

4B6SLC-50

lrtFORMATICA C./ MADRE DE 0105,1:1 17011 - VALLADOLID TEL. (983) 26.37.00

C / PUI;;NTl". COJ.<:ANTE,34 47007 - VALLADOUD 'I'I::L. (983) 23.!10.M

540 tvTB 4tv1B SVGA COLOR

4B6DX2- 66 540 tvTB. 4tv1B SVGA COLOR

486DX4--100 540 tvTB. BtvTB SVGA COLOR

PENT!UtvT 90 540 tvTB. BtvTB SVGA COLOR

Fig 4: Perceplron de dos niveles para procesar funciones lógicas de dos entrados

Esta regla de aprendizaje, que Rosenblatt denominó b.1ck coupled error correction, tiene la propiedad ele con­verger siempre al valor correcto de los pesos siempre que este valor exista. En uno de los apartados siguientes veremos que hay detemlinadas combina dones de e ntradas y salidas que el Perceptron no puede aprender.

--¡ '18 . 000

-140.000

'185.000

275.000

* CONSULTAR OTRAS CONFIGURACIONES " !VA 16% NO INCLUIDO ~ DESCUENTOS PARA GRUPOS

i RECUERDA ..... LO IMPORTANTE ESTA EN SU INTERIOR

Marzo-Abril 9 5 Login: 17

Page 18: Revista Login:_ nº 13

• SIMUI ACIÓ N

El código fuente ele la figura 5 es un programa en C++ que pennite estu­diar el funcionamiento del Perceptron, compilado con Turbo C++ 3.0. Como ejemplo, se muestra el aprendizaje de una fundón OR de dos entradas. Puede comprobarse que el Perceptron es <:.1.­

paz d e aprender también una función AND. Se ha prescindido de las dos uni­dades del plimer nivel puesto que úni­camente dejan pasar el vector presenta­do en la entrada. El umbral para la fun­ción de s..qlicla se ha ajustado al valor l.

• CONCl USIONl:S En este apartado se estudiarán al­

gunos resultados interesantes que pue­den obtenerse medi:1nte la simulación.

El Perceptron aprende bien las funciones OR y AND, sin embargo no oa.me lo mismo con la fundónXOR. Esto es debido a que a medida que se van presentando los patrones ele entrada y su conespondiente s..'llichl, la red va adap­tando los pesos, pudiendo ocunir (como en el caso del XOR) que la diferencia entre las entradas y la salida sea muy grande provocando un cambio grande en el valor de los pesos y haciendo que se bone lo aprendido antetionnente.

Este problema en el que la red •va olvidando-lo aprendido a medida que aprende nuevas cosas ya ha sido resuel­to en otras redes neuron~lles más mo­dernas. En algunos casos el problema se soludona presentando las entradas en un orden distinto. Sin embargo, en el caso del Perceptron se ha demostrado que no puede aprender determinadas combina­ciones de entrada y salida. En este senti­do, en 1969 Minsky y Papert demostra­ron en su libro Perr:eprrons que este tipo de redes no puede clasificar pr..ttrones de entrada que no sean linealmente sepa­rables. Unos patrones de entrada/salida se consideran linealmente separables cuando en una representadón geométtica en el plano pueden separarse por una linea recta los grupos de entradas/sali­das del mismo Lipa. Por ejemplo, en el caso de la fundón OR, la figura 6 mues­tra cómo pueden ser separados por una línea tecta los patrones de entrada clasi­ficados con una salida O de los clasifica­dos con una salida l. Sin embargo, en el caso del XOR, véase la figura 7, no es posible hacer una separación de este tipo.

18 Login: Marzo-Abril 95

/* PCPTRON. CPP Al·fredo Catalina Gallego 8 Feb 95 */

#include <conio.h>' llinclude <iostream.n> #i nclude <a lloc. h>' lldefine NO_HAY_CAMSJ}l O lldefine .HAY_CAMBIO 1

class neuron.a{ float *wi j; float xj'; float sj; float h; int dro; int cambi'o; float *ents;

publ ic: •. , neuróña<"int NumEnt~ float Umbral);

- neu ro.na<void>; float act'ivacion<float *si>; float salida(void); void aprendizaje(float *si, float b); int mir:a_ cambio<void); ) ;

neurona: :neurona<int NumEnt, float Umbral) { int n; xj=O; sj=O; h = Umbral; nro = NumEnt;

wij = (float *) malloc<sizeof<float> * nro); for <n = O; n < nro; n++) wi j[nJ = O; wij[OJ = O; wij[1J = O; }

neurona: : -neurona<void) { 'free<wij); )

float neurona:: activacion( float *s'i > { i nt n; xj = O;

for(n = O; n < nro; n++> xj = xj '+- <si'CnJ .~!; .. wij[nJ); return xj; }

flof)t neurona: : sa liCla <voi d) ( i9f ' (xj > h) s) = 1''; else sj :: O; return sj; }

voi'a neurona: :aprendizajé<float *si, f .loa:t b)

{ float error; int n; activacion<si); sa~idaO; error = b - sj; if <error != O> { h = h - error;

for<n = O; n < nro; n++) wi j_(nJ :: wi j[nJ t enror '* siEnJ; if (!cambio) ents = (float *) malloc(¡s)zeo.f<'t'.ltoat) * n.ro); cambio = HAY_CAMBIO; memcpy<ents, si, sizeofCfloat) * nro>;t

} el se ( if (!memcmp(ents, si, sizeof<float) * r¡ro))· (

cambio = NO_HP.Y_CAMBJO-; free<ents); } }

re,turn; }

int neurona: :mi ra_cambio<void) { return

vo'id m a in ( voi d) { float entradas(8J = {0, O, O, 1, 1,

Hoat salidas(4J = <O, 1, 1, D; int n; neurona n1<2, 1); ctrscr().;

O, 1, 1>; ~'

1* '0E~ es te bucle· se realiza el aprendí za,t.je r?t,¡, do {' for<n = 1; n <= 4; n++) {

}

Q1.apcendizaje<"&e.nt¡:adas((n ,- 1) * 2J, salidasJ:n - 1J>; } } w He < n1 . mi.r!1l:_cambi o<>)i>';

/* bu el e se comprueba ~o apr~dido '* 1 cout << .. ,ptradas " << «Salidas\n•; ' cout << ,¡.:..;:_~ « <~, ,~,--\n\n,.; for< n = 1>;~7; 11' <::; 4; n'-t;;t)'1 {

n1.activab.tl>n<&entrada~IJ<ln - 1> * 2J>; << f( «; @it

<< entradas((n - 1) * 2J; out << ~,• << entradas[(n - 1) :j1; out << '~ •;

n1.salida() << •\n•;

Fig 5: Ustodo en C++ para la simulación de uno red neuronal del tipo Perceptron

Page 19: Revista Login:_ nº 13

Redes neuronales 1 nteligencia Artificial Veamos que esto es asr. Pnra que

el Perccptron aprenda una función XOR deben cumplusc l;ts sigtucntcs cuatro desiguakbdes

O w 1 + O "'z < h 1 w 1 + O ""z < h O w 1 + 1 \\"z < h 1 w

1 + 1 \\"z < h

•> o< h •> w, > h •> \\'l > h •> w, + \\'1 < h

Sm embargo, sr w, y "'.!son ma­yores que el umbral h, su suma nunca podrá ser menor que <.:src, }' por tanto no hay nrngun~t <:ombinatión de esros valores que Lllmpla simultáneamente bs cuatro desigualdades.

Para ilusuar estas ideas puede re­presentarse en t'l L'spacro de los pesos la superllcie c.lel L'l mr para cac.la función Así, puede tomarse una función de error del trpo

E .. L C()P)l 1 1

dondt: li" es d L'rror de b neurona j paw cad:, p:ltlcin ¡>de cntr..1da. Es de­cir, la fundún dt• er rur l:~ da el error tot<JI en b neurona ¡ p;tr.l un ,·alor dado de los pesos y para un grupo de cncr.lcbs r salrd.rs. Fl error se cal­cul:t como b sum:1 dt• los errores ele­vados al cu:tdr.•clo cu:1nc.lo se presen­tan bs 11 entradas a 1:1 neurona. F.n el ejemplo que nos ocup:1 n-'1, puesto que hay cu:11ro pallones de entrada distinros.

L1 luntron de.: enor defimda de esta manera toma un \alor par.r cada p:1r de valores que tcng.ln los pesos "'

11 y

zoco Record;~mos <1 todos los lectores que pueden cnvi;~rnos anuncios para la compm, venta o cambio de todo tipo de productos que tengan c;~bid;~ en el ámbito de los temas de la revista.

Los anuncios serán insertados gra­tuitamente. Los textos pueden enviarse a nuestro Apartado de Correos, o bien personalmente en nuestra sede o por correo electró­nico (ver página 3).

Esperamos vuestra colaboración.

(0,1 ) (1,1) .---------,

o (0,0) (1 ,0)

Función OR Función XO R

Fig 6 y 7: Representoctón geomélrico en el plano de uno función OR y otro XOR

w . De esta forma, en el CSIXICio de :¡

los pesos fa función de cnor es un:1 superfine donde podr;i obser\arsc r¡ué combrnaoonc~ de los pesos ha­cen mínuno el error

Las frgur..ts 8, 9 y 1 o muescr:~n las superfrcrcs del error, con un um­bral de \·alor 1, p:tra bs luncrones OR, M\D y XOH. respecll\·amt·nte Se ha representado en color m;is oscuro las porciones de superftere de error O en cada caso. Adem:ís, los bordes de la función de error se han unrdo al pla­no ele error O p:ua mayor cbndad.

Como puede observarse hay infi­nit:~s combinaciones de los pesos que hacen que hacen el error O p~1rn l:t fun­ción OH lgu:tlmcntc puede verse que hay una única combinación ele los pesos que hace que valga O en el caso de la función ANO. Y por úlumo, que no hay rungún valor de Jos pesos que h~tga nulo

el error cuando .se tratn de una fun­ción XOR, como era de esper:~r.

Una solución al problema, ya conoc1da por Minsky y Papert, con­saste en rntroducir una c:1p:1 adicional de neuronas entre la capa de entrad:~ r 1::1 capa de sahd:t Sin embargo, eSI:I solución m1phca modificar la rcgb de aprendrza¡e par:~ poder enseñar tam­bién a las neuronas de la capa ínter­medra

Aplicaciones al control automático

Por ültimo, se muestran algunas de las múltiples aplicaciones que pue­den darse a las redes neuronales en este campo.

Visión artificial : Se emplean modelos de redes neuronales que son capaces de emular características del fun-

CENTRO DE ESTUDIOS

MODULOR CARRERAS UNIVERSITARIAS

PHI·.PAH \( )()'\; D .. 1 '\ \r-..H<\1· ..... H~ALE~

CURSOS TÉCNICOS

(/ Ponoder~ 68, Bajo Derecho Teléfono 208804 -47004 Vollodolid

Marzo-Abril 95 Login: 19

Page 20: Revista Login:_ nº 13

genes texturad;ts l'n color. el aprendiZ3-~ ¡xu:t dctcnnin;u posiciones a partir de 1::\ información pro,·cn•entc de dos ci­mar:ts y n .. •prcscntación de b visión bínocubr

Reconocimiento y catcgori7 .. ación de patrones. Estas re­des emplean bs artJllitcctur:ts de la Tea­lÍa de la Re1;onancia Adapt:Hiva o ART. Entre o11~11; aplit~lciones se enc.1.1entr:tn el reconocuniento de c.':lr3Cteres manuscri­tos, autori7 .. adón de descubiertos banca­rios y cbsdlc1ción de cromosomas.

Procesos químicos: Dos aplica­ciones posibles son: el control de b tem­pe•~llur:t l'l1 un fl':lCtor quím1co y el con­trol de procesos quunico orgánicos no lineales.

Control motor Permiten resol­,·er el problema <.mcmallco mverso en manipuladores y robót1ca mó\'il, consis­tente en detl'nmnar la scc."'..•encia de movimientos que deben realizar las dis­tintas partl'S dd rohot para alctnzar una pOSición descad.1 También pcnniten el

~.a evolución de las redes neuronales no está clara y se determinará en los próximos años. ~ ~

aprcndizajl' <.k la din;,mica clcl manipu­lador, es ckcir, de la gl'neracíón de las fuer7.:~s y JXII'CS que hay que aplicar para producir un movimlcnto determinado.

Otros campos, como la predic­ción económic:t y problemas de gest1ón, aprendi7..::1Jl' preventivo, etc ..

Los Rrupos de redes neuronales que tr:tba¡an actu;tlmcnte en la Unh·ersi­d'ld de \'nlladolid se encuentran en la Facult.'ld de Ciencias y en la Escuela Téc­n•ca Superior de Ingenieros lndUSlriales. En est.1 última se trabaj;t en distintos cam­pos como control motor, \isión artificial, identiftCllión y control de procesos, ro­bólict rnó,·il y l'Cconoomicnto de patro­nes. Si dlector desea ampliar informa­ción sobrl' l'Sll' tema puede dirigirse a cualquíc•:• d<.! los dos ccnu·os o bien po­nerse en contacto con el autor (direc­ción de c-m:ail :¡/(_so/[email protected]•'<'l.es)

El futuro de las redes neuronales

20 Login: Marzo-Abril 95

r.:~s redes neuron:tlcs alcan7.:~n e~d.'l ,·ez mayor:tuge, teniendo mulutud de aplicaciones en campos d1versos y d:tndo soluciones senctll:ts :1 problemas cuya resoluaón n:Slllta complie~da cuan­do se emplean m:iqumas algorítmiets. Aún así, el futuro de las 1-edes neuron:tles no está tocbvía claro y ser:í en los próxi­mos años cuando Sl' dctcnninc su cvo­ludón.

Por último, quiero agradecer la colaboración preMad:t por Félix Muñiz Espad:t, José !vl:lnuel C:tno Izquierdo y Juan López Coronado ¡xu-a la d:tbomdón de este artículo.

Bibliografía

[ J Redes neuron.t!es. Algoritmos, .7p!ic:Jaoncs y técnic:1s de progmm:t­dón. James A. f rccm:tn y David M. Skapura. Ed. Addison-Wesley/Díaz de Santos. [ _;] Explomtions in paml/el distributed proccssing A 1 !.1ndbook of Models, Progmms, .1nd Exeroses.James L. McCielland, D:tvid E. Rumelhart 1l1c MlT Press. Cambridgl' M:tSSachusetts. (-q lntroductJOn to :trllfici:t! intelligence. Ph1Wp C. Jackson, Jr. Do ver Publie~tions, lnc. Nev. York. [ iJ SelfOrgnmz;llJon .1nd ;1ssoo:uil·e Memory. Kohonen, T. 19&-L Springer­Verlag, Bcrlfn. [5] Principies of Neurodynamics: Perceptrons :wcl rile 111eory of Bmin MedJanisms. Rosenblau, P. 1962. Spnrt.'ln Books, Washington OC. [<>] Ncurn! D:m11'nism: l11e 17woryof Neuron.1/ Group Selection. G .M. Edelman.New York, B.'lsic Dooks, 1987 [- ] A m.7ssil·efy ¡u m// el :trchilecture for ."1 self-organiztng neura/ pauern recognition m.1chine G Carpenter y S. Grossbcrg. Computer VJS1ón [¡;] Hof'.· does ;t bmin build a cogmti1·e code? S. Grossberg. Pshycol Rev. \'OI 87. [9] Neura/ netn-orks and Physical Systems f'.' ith Emergen/ Collecth'e Compurarion:tl Abilities. llopfield, J.J. 1982. ProcWatl Acad. [ lO] 7Jwory ofthe Prop:1gation Neuml Nerwork. Hetch-Wielsen, R. 1989. Proc. rm. Joint Con f. •

Fig 8 Functón de error poro uno OR

•• l

Fig. 9. Función de error poro una AND

Flg. 10 Función de error poro una XOR

NOTA DFL HAQUt TAIJOR: Por necesidades de espacao, en el listado C++ de la tig. 5 del artfculo se han yuxtapuesto órdene~ que 1mc•almeme figuraban en lfneas separadas, aunque el texto perma­nece fntegro. El hswdo ongmal puede obtenerse de las formas md1cadas en la pág. 3 de Login:

Page 21: Revista Login:_ nº 13

Apple

MAC ... Windows ¿Podré continuar utilizando mis programas DOS/Windows si decido cambiarme a una plataforma no compatible como la de PowerMAC? Esta duda es habitual cuando analizamos las interesantes ofertas de la familia Apple en el momento de la compra de un nuevo ordenador, en especial tras la aparición del PowerPC y el PowerMAC. Analizaremos aquí la compatibilidad con PC ofrecida por estos equipos, y continuaremos hablando en próximos números de las alternativas al mundo PC.

JAVIER PALMERO Es1 EBAN

Cuando se decide la compra de un nuevo ordenador, al usuario del PC sie m pre le salta n a la me nte esas

o tras bmilias como son la de Ap ple Macintosh, y las dis tintas estacio nes de trabajo basadas en UNIX (TBM, HP, SUN, DfGlTAL, . .). En este artículo se tratnd el tema de la emulación del sistema ope­rati\'O DOS/ \Xfindows bajo Apple Power Macimosh.

La bmili;l de orderudores Applc 1\l:tcinrosh siempre ha esrado a la altura de los PC en lo que respecta a rendi­miento; esta clase de orc.k-nadorcs sc han dedicado rradidonalmcntc, gracias :1 su interface gr:ítico, a la autocdictón y d i­seno grMico. Pero u·as la aparioón en el mundo PC ele .\licroSolt Winclows 3.x con sus programas de edición y diseño, esta han·era h;l sido superada. J>or lo cu:rl el mundo PC y el mundo .'-.L-\C se v;¡n :tct.!r­canclo poco a poco. El último p:1so ele este acerc11níento serí:l b comp:ltibilicbcl binaria ele bs aplicaciones.

H:1st:1 h:-~ce un par de anos la t'ult­Cl t01 m a de h:-~cer "cumpa tibies· a los i\] -\(' CJ.I t¡liC pudicr:lll icct dtSl'ClS r•\T, }'

los dikr~·nte'> fmm:nos de los fidwrus crc:tc.lns t'<)n :tplicKi\Jllc~ I'C Pero siem­pre se ncccsir~1ha qcnlt.u algun progr:t­m.r para DOS/\\1indo\\'s. ~·os:t unp,>sihlL" ele conseguir en aqul'llos :lntiguos l'vL\C. 1 l:lbta que cnnsegurr l:t comp:nihtlrcbd bunna con los prog•:un:1s DOS;\\'inclmYs.

l'ar:1 cnnsegutr que un programa DOS/ \\frmlows funcione en los i\pple l'vbcintosh cxtslen dos posibilíclades

.1) Vía .soft\varc, por un program:l de emulación

h> Vía hardware, incluyendo un proces:-~dor compatib le DOS!Windows.

Empecemos ha blando de la pri­merJ forma.

Fig 1 Power MAC 6100 con monitor multimedia.

ENCUADERNACIÓN CASTILLA S.l. JUAN MAMBRILLA N° 25 TLFO: 21 03 40 VA LL A D O LI D

Se realizan toda clase de trabajos:

FASCÍCULOS y REVISTAS.

T ESIS.

Proyectos

fiN DE CARRERA.

Restauración de

LIBROS ANTIGUOS.

GRABACIONES EN ÜRO.

Marzo-Abril 95 Login: 21

Page 22: Revista Login:_ nº 13

SoftWindows

1 • n mpaubthtbd con la!> aplic~t­cione~ [)( >~ \\ mdows se puede conse­guit via sc.>lt\\ .m: 1.." ucur cmpll..'anuo un progr:lllt;t C(lll..' l..'tnttle :11 sistema op~.:rau­\'0 O< )S \\ 111dows En bs pl:tt:Jionnas Appl<: Pc)\\'l..•n\IAC este programa es SoftWindows ucado por lnsi~ni.t

Soluuon.' DtdlO p1ogram.1 genera un P<..

vutu:ll tk·ntro ud Power~lAC, m:ís con t rct:tllWIHI..', tea liza una translo11naucin del \1'1 ( \¡>pflc;¡twn Pro,w:tm lmct U­ce cs dt.'CÍI, d con¡unto tk· o1dencs } lthtt.%ts quc pcrnHtcn al progr:tma l.t t·o­llllllllt'anon dt.• alto 111\ el con el Si~tema Oper:ttín> p:tr:t l:t utiltzacicín dc sus re cursos, qm· t.'~te :-.e encarga de gcsttonar a b:IJO 111\ d l de OOS W1ndows al API dd \U el J.<., < :u ando u na a pltG!uon ge­nct~l un;l ll.unad:t al :;1stem:1 DOS \\'indows, Solt\Vindows reconnerte t.·st:t llamada a un:1 dc:l s1stcma ~JacOS Pero .SI la :1phc:tu6n DOS \\ 1ndo" s lntt.•nt:t saltar..c dtrl..'ttJml·ntc al hardware del PC, esto en el c.:mubdor no se podra tmducir a dtrccoone:-. ~IAC, y:1 que la :uquuc:ctu­ra de los PC y de los MACes distmta Por lo tanto cualqwcr programa func1onarf1 de manera uniforme si cuando fue pro­gr:unado respetó los API de DOS/ Windows.

liemos vbto como consigue SoftWtndows emular el API de DOS/ Wtndows pero, ¿cómo convertir al MAC en un Pl. con el mayor parecido post­ble~

Todo PC basado en DOS/ Windows se compone de los s1guíentes clemcntos b:ís1cos

.1) Un d1sco duro con un SIStema ele• ftdwros h:t-;:tdo en 11n:1 FAT

b> L'n r:uón upo M1crosoft. el Un procesador compauble PC dl Una taf)eta de vídeo C\'GA.

EGA, l. e) ,\.le mona expandida r exten

elida. f> Altavoz.

Pues bien, SoftWindows realiza la virtualización del PC de la siguiente for­ma: Cuando se inicializa el programa SoftWindows en una ventana del escri­tono del MAC se crea un e momo DOS o Windows, que arranca en un disco duro vtnual o en la un1dad de disco una ver­sión de DOS, que se hnbrá configurado

22 Login: Marzo-Abril 95

Fig 2· Lo ventano de SofiWtndows bajo MacOS en el PowerMAC 6100 muestro uno sesión de Ull!Jdodes Nor1on 7 que nos 1nformo de las coracleristicos PC

prc.:\ 1amenre en los menús de SoftWindows, indicando qué upo} e .m­tidad de memoria, t::~rjet:t de ndc.:o y t:t­ll13i'IO del disco duro se qutcrc uttlll~ll p:tr:t esta sesión re.

Como todo en el MAC, la sesión de DOS estará en modo graltco, podre­mos tener aplicaciones gr:'tf1<::ts en una vcntan:t, compartiendo escnto110 con otras aplicaciones MAC. El di.sco UliiO C. que vemos al arrancar SoftWindows es en realidad un fichero del MAC que si­mula el comportamiento del dispositivo.

~L 1 . , ' a emu ac10n actual es pobre, aunque muy pronto se podrá emular un 386, incluído el modo extendido de Windo\\ s. ~ ..J.

Ya tenemos un PC dentro del MAC. Pero, ¿qué tipo ele J>C? En la ver­sión actual de SoftWindows las caracte­rísticas emuladas son las siguientes:

a) Procesador 80286 rápido. b) MS-DOS 6.2 e) MS-Winclows 3.1 en el modo

ele ej~ución standard, con todas sus ca­racterísticas (OLE, DDE, )

el) Tarjeta gráfica VGA, FGA,CGA

Como se puede ,·cr el rendí mien­toes bajo por el momento, ya que no podemos correr todas l:!s :tplicaciones \X1tndows del modo extendido, ni las DOS que requieren un 386 para su fun­cionamiento. Es dcetr, casi todo lo que puede correr en un AT puede ejecutar­se con SoftWinclows. siempre que dichos programas no manejen el hardware di­rectamemc (Vamos, que no podemos utilizar el 2l\l, por ejemplo)

En la figura 2 se: puede ver la eje­cución del programa de tnform:1ción del sistema ele bs Utilidades Norton 7, sobre un PowcrMAC 6100/66 con 8Mb de RAM ( pn1ebas realiz.aclas en Gillnfonn:ítica); la prueba resultó satisfactoria y sin erro­res. Tamb1én se probó el Derive, pero obtuvimos un error )1:1 que SoftWindows no regenera la venrana PC, emrcmez­clándose lineas y texto al cambiar de la \'entana de la gr-.ífica a la de :ílgebra. También se mtcntó ejecutar el Civilizauon pero choco, aunque a favor de SoftWindows hay que decir que no colgó al MAC, sino que tan solo se vió afectada la sesión actual ele SoftWindows.

Resumiendo: el rendimiento fue pobre; esta emulación sólo puede utili­zarse de forma ocasional y sin ab:1rc.ar campos como el de OS/2 Dentro de poco Insignia lanzará una nueva versión de SoftWindows que emulará un 386, con la posibilidad de ejecutar Windows 3.1 en modo extendido a mayor velocidad.

Page 23: Revista Login:_ nº 13

MAC ... Windows Apple

Apple Power Macintosh 6100 DOS

La otra posibilidad para conseguir la compatibilidad del software es La vía hardware, consistente en La conexión al slot de proceso directo del MAC, PDS, de una placa hija con los componentes necesarios del PC. emre ellos un procesador compatible PC (80x86) para que ejecute bs uplicacíones DOS/ Windows.

Fig. 3. Apple Power Macintosh 6100 DOS

El Apple Power Macintosh 6100 DOS es el fruto de lo anteriormente ex­puesto. Cuando ejecuta un programa DOS/Windows, el programa de emula­dón SoftWmdows redirecciona las llama­das al API DOS/Windows hacia el procesador PC. De este modo consegui­mos prácticamente la compatibilidad completa con los programas DOS/ Windows. Este modelo lleva incorpora­do lo siguiente:

Está destinado a Jos entornos de trabajo que ejecuten aplicaciones MAC y DOS/Windows.

con buenos o jos la incorporación de un PowerMAC en tu vida.

a) Procesador PowerPC 601 60/ 66MHz Resumiendo: si sólo vas a ejecu­

tar programas DOS/Windows sigue en el mundo PC, pero si piensas dedicarte de forma profesional a la edición, mim

Agradecemos a D. José Luis del Olmo, de Gil Inform.ática, la ayuda prestada para \a realización de este artí­culo. •

b) Procesador i486DX2/66 MHz e) Sound Blastcr de 16 bits.

OFERTA ASfSORES • NFORMA·ncos

• Caché de 256 Kb ampJiable . 6º Aniversario • Triple VESA Local BUS (opción PCJ). ¡Lió menos! • 4 Mb. de Memoria RAM 72 comactos PENTIUM. Ampliable a 128 Mb. • Ampliable a Pentium y DX4. • Floppy de 3'n, 1.44 Mb. - !DE de Alta Velocidad Vesa Local Bus. • Disco Duro de 540 Mb. - SuperVga de 1 Mb. Ampliable Vesa Local Bus.

y consuhe Precios Actualizados OfertaS

íod3S Jas Mejoramos

• Monitor SuperVga Color 14", I024x768., Full Sean - Baja Radiación. Ratón LOG 486DX2 66 MHz Local Bus/PCI 120.000 Ptas. HP 540 Deskjet

LOG 486DX4100 MHz PCI 133.900 Ptas. Canon BJ-4000Color

LOG Pentium 90/100 MHz PCI 8Mb. RAM Consultar Canon BJ-200

39.900 Ptas. 54.000 Ptas. 36.900 Ptas.

"' Ampliación a 840Mb. Disco Duro .............................. 9.900 Pts. "' Disquetes 3111 Mb. Formateados ...................................... 39 Pis. * CD-Rom 2X Doble Velocidad (Varios Marcos) SONY ... 16.000 Pts. * CD-Rom 4X Cuádruple Velocidad (Varios Marcas) .... 25.000 Pis. * Digitalizadora J 2"x 12" Puntero y Lápiz .................. 24.000 Pis. • Módem-Fax Alto Velocidad 28.800 bps ................... 20.000 Pis.

Garantla «Plena Satisfacción» Si no queda Satisfecho le Devolvemos su Dinero

Pago hasta en 3 meses con Tarjeta Red 6000 Entrega Inmediata

Servicio a toda Castilla y León

·~ot. SERVICIO TÉCNICO E INSTALACIÓN A DOMICILIO GRATUITOS

a,c \.~ 3 AÑOS DE GARA~... TOTAL "'e ~V ~ 1 '11 .a .a.t1l Piezas y Mano de Obra \t.'ó.~'\ ~,t3~ Plz. del Ochavo 2 -3 Atico C [Junto C/ Platerías] VALLADOLID

Q) 983- 37 02 28 y 37 56 30 y Q) 24H 908 48 72 71

• Marzo-Abril 95 Login : 23

Page 24: Revista Login:_ nº 13

•• • ~cológicos y &eon6mkos • Unieo~ impre$0rof slo fungibles;

slo tfliduos Innecesario~ • Compontllles inlemos de lorga

durocl611

!)fRAC CASTfU.A UON S.A.L

Muro, \1 47004 Vollodolid 1t 21 07 67 Fax 21 09 89

¡·;,

POR ECONOMIA

-"r· ,/~L.

. '-~" . ·.··· .. ·' .. ·r~:,:,·:·,,~>r.· :: ~:~··'~·2:~.~""'''' .

·~ K9DtERa .

Emulaciones: IBM, EPSON,

PRESCRIBE 11, DIABLO

;;¡

CSiAFF 1Q95