Anda di halaman 1dari 18

Arquitectura y funcionamiento de la computadora digital

Objetivos:
Que el estudiante sea capaz de 1. Distinguir el ncleo de una computadora de sus aparatos de entrada y salida. 2. Hacer la distincin entre el procesador de una computadora y su memoria. 3. Explicar el funcionamiento del procesador y de la memoria de una computadora como resultado de interacciones elctricas. 4. Discriminar entre la mquina fsica que constituye una computadora y los programas que corren en ella. 5. Expresar un procedimiento bajo la forma de una secuencia de instrucciones que pudiera ejecutar alguna mquina.

El ncleo de la computadora
Podemos considerar como ncleo de una computadora a su procesador junto con la memoria adosada a l. Normalmente esa memoria es expansible. Por ejemplo, una microcomputadora PC (iniciales en ingls de "personal computer") suele salir de la tienda con un mnimo de 256kbs de memoria adosada a su procesador Intel 8086 (kb es una unidad de memoria, de la palabra inglesa "kilobyte"; corresponde a 1024 caracteres). Pero puede aumentrsele en mltiplos de 128kb hasta un mximo de 640kb. Al conjunto de esos dos componentes, procesador y memoria, se les suele llamar CPU (del ingls "central processing unit"). Nosotros lo llamaremos simplemente ncleo. Al final de esta seccin daremos una visin general de su construccin y funcionamiento.

Los aparatos perifricos


El ncleo por s solo es inaccesible al usuario humano. La computadora necesita, adems, de los llamados aparatos perifricos. Estos son de dos clases: aparatos de entrada y aparatos de salida. En el caso de las microcomputadoras, el tpico aparato de entrada es el teclado, por medio del cual el usuario enva informacin al ncleo. El tpico aparato de salida es el monitor (la pantalla fosforescente parecida a la de un receptor de televisin) por medio del cual el ncleo enva informacin al usuario. Si el lector ha tenido la experiencia de usar una microcomputadora, podra estar bajo la equivocada impresin de que el teclado puede

enviar directamente informacin al monitor, pero esto no es as: lo que aparece en la pantalla al teclear ha ido primero a la memoria de la computadora, por medio de la accin del procesador, y de ah ha sido enviado como un eco, tambin por accin del procesador, hacia el aparato de salida. As pues, la arquitectura global de una computadora tiene un ncleo, formado por el procesador y la memoria, y aparatos perifricos, unos de ellos de entrada y otros de salida. Debemos agregar que hay un perifrico muy importante que tiene funcin de entrada y salida simultneamente: es la memoria auxiliar, generalmente en la forma de un disco duro o de un disco flexible. En esa memoria auxiliar el procesador escribe y lee, de modo que podemos concebirla como un enorme cuaderno donde la computadora guarda informacin que no cabe en su memoria ordinaria. Otro perifrico de entrada y salida es el mdem, que permite a dos computadoras conversar entre s. A continuacin describimos los aparatos de entrada y salida ms importantes. El monitor El principal aparato de salida de una Cuestin de vocabulario computadora, por medio del cual nos Monitor es un tubo de rayos catdicos usado como presenta sus mensajes y los resultados que le aparato de salida para una camputadora; se parece a hemos encargado, es el monitor. Consiste en una pantalla de televisin. Pxel es un punto luminoso en la pantalla de un un tubo de rayos catdicos semejante a la monitor, unidad ms pequea de los caracteres o pantalla de una televisin, y opera de grficos producidos por una computadora. acuerdo con los mismos principios fsicos. Usa una tecnologa de rastreo, llamada as porque la imagen se forma por el recorrido de un rayo de gran velocidad que en cada viaje toca todos y cada uno de los puntos de una matriz que llena la pantalla. La tecnologa se basa en el hecho de que cuando un filamento de tungsteno se calienta con una corriente elctrica despide pequeas partculas llamadas electrones. Al filamento se le llama ctodo, y los electrones desprendidos forman un haz llamado rayo catdico. El rayo pasa en medio de unas platinas deflectoras que le dan direccin, y va a estrellarse contra la cara del tubo (la pantalla) donde encuentra una capa de fsforo, a la cual hace centellear por una fraccin de segundo en el punto exacto de choque. La imagen que de este modo se forma se disuelve enseguida, por lo que la pantalla debe refrescarse constantemente, lo que se hace 30 veces por segundo. Para hacerlo, el monitor copia el estado de una parte de la memoria de la computadora, llamado el mapa de bits, donde cada bit que est encendido o apagado es una instruccin de encender o apagar el fsforo de un punto en la superficie de la pantalla. En los monitores de color el mapa de

bits es ms complicado, pues incluye informacin sobre los diferentes componentes del color con que debe brillar cada uno de esos puntos.
Nota histrica La aparicin del monitor como principal aparato de salida es un acontecimiento relativamente reciente. Las primeras generaciones de computadoras tuvieron como principales aparatos de salida impresoras y perforadoras de tarjetas (estas ltimas hoy desaparecidas). Curiosamente, el tubo de rayos catdicos fue parte de las primeras computadoras, pero no como aparato de salida, sino como elemento de memoria (el tubo al vaco). En contraste con la tecnologa de rastreo, el fsforo del tubo al vaco era de gran persistencia; no haba que refrescar su imagen en forma constante, lo cual permita el almacenamiento de datos.

El teclado El teclado ha llegado a ser el principal aparato de entrada para la computadora. No siempre fue as: en las primeras generaciones la principal entrada fue la lectora de tarjetas perforadas (hoy desaparecida, como la perforadora de tarjetas). Es parecido al de la vieja mquina de escribir, excepto que contiene, adems de las teclas alfanumricas, teclas de funcin, destinadas a pedirle a la computadora la ejecucin de una accin determinada. Se distinguen dos clases de teclado, aunque en la prctica los fabricantes combinan aspectos de las dos clases en un solo aparato. El teclado alfanumrico est diseado para que el pulso de una tecla enve directamente los bits del carcter correspondiente, de acuerdo con el cdigo elegido (ASCII, BCD, ...). El teclado funcional, en cambio, enva una seal de varios bits para indicar que una cierta tecla ha sido pulsada, o que ha dejado de ser pulsada (distinta seal en cada uno de estos dos casos); queda al programador el decidir lo que la computadora deba hacer al recibir esos mensajes. Este teclado ofrece una gran flexibilidad y permite modelar la interfaz a la medida de distintos usuarios. El disco La memoria auxiliar en disco es una necesidad por dos razones: la primera es que la memoria central de la mquina, construida de transistores, es comparativamente cara, de modo que debe mantenerse relativamente pequea. La otra razn es muy importante: la memoria central es voltil, es decir, desaparece cuando se le corta la fuente de electricidad. As pues, si queremos conservar el producto de nuestro trabajo de computacin, debemos guardarlo peridicamente en este otro medio, a saber, un medio magntico. Los discos pueden ser fijos y duros o bien removibles y flexibles (aunque existen tambin discos duros removibles, pero no son comunes). Los fijos contienen mucho ms informacin: tpica capacidad para un disco duro de PC es ahora 40 mbs (del ingls "megabytes"; 1 mb = 1024 kbs); el disco flexible ms corriente almacena solamente 360kbs, aunque los hay de alta densidad con 750 o 1.200kbs. Los discos duros deben su gran capacidad al hecho de que en realidad son paquetes de varios discos, generalmente diez, muy parecidos a los discos removibles excepto en que son rgidos. Cada lmina de disco duro, o cada disco flexible, contiene informacin en ambas caras, y las cabezas lectoras se mueven ligeramente sobre ambas superficies para escribir y

leer informacin. Las cabezas son las nicas piezas mecnicas que se encuentran dentro de la caja de una microcomputadora y son responsables por los ruidos que sta emite intermitentemente. Las caras de disco contienen varios crculos concntricos donde la informacin se almacena en forma magntica; es para lograr acceso a esos crculos, llamados pistas, que las cabezas se mueven. Los discos giran constantemente a gran velocidad (entre 500 y 1000 revoluciones por segundo), por lo que las cabezas pueden escribir o recuperar la informacin de ambos lados de una pista casi instantneamente (de 100.000 a 800.000 caracteres por segundo). Sin embargo, la necesidad de cambiar la posicin de las cabezas para caer en otra pista hace que la velocidad de escritura/recuperacin sea considerablemente menor en la memoria auxiliar que en la memoria del ncleo. La cinta La cinta magntica, semejante a la de los "cassettes" de msica, sirve tambin como memoria auxiliar. A diferencia del disco, sin embargo, la informacin en ella no es de fcil acceso, pues est almacenada en forma secuencial, y cuesta ms recuperar datos o programas particulares almacenados en ella. Adems, el proceso de movimiento de las partes mecnicas es intrnsecamente ms lento, dada la fragilidad de la cinta. Es por todo eso que su uso se reserva en estos das casi exclusivamente para operaciones de respaldo, es decir, duplicacin de la informacin que existe en disco como una prevencin ante su desaparicin accidental. La impresora La mquina impresora es uno de los ms comunes aparatos de salida que convierte en manchas de tinta en un papel la informacin que existe en forma elctrica dentro de la computadora. Junto con la memoria auxiliar de disco, constituye la manera de hacer permanente esa informacin, que se pierde en el momento en que se apaga la computadora o se va la corriente. Hay muchos tipos de impresora. Algunos imprimen una lnea a la vez, mientras que otros trabajan carcter por carcter. Las impresoras de lnea necesitan de 80 a 132 fuentes de tinta independientes, mientras que las de carcter estn dotados de una fuente mvil que viaja de un extremo a otro de la lnea. Algunas impresoras imprimen por impacto y, otras, de mayor calidad, por otros mtodos. La de ruedas de imprimir tiene por ejemplo 132 ruedas, una en cada posicin, y cada rueda contiene todos los tipos posibles. Es muy rpida, pero muy rgida en su funcionamiento, pues los tipos no se pueden programar. Mejor en ese sentido es la impresora de matriz, cuyas cabezas tienen una matriz de agujas de funcionamiento independiente (y programable) que son las que golpean el papel imprimindole pequeos puntos. Entre las impresoras que no son de impacto, las ms interesantes son las de chorro de tinta (en ingls "inkjet"), que tiran un chorrito de tinta contra el papel. El chorrito pasa en medio de placas de deflexin que pueden dirigirlo en cada instante en la direccin correcta gracias

a que la tinta est cargada elctricamente. Otros sistemas ms elaborados y caros (como la impresora de lser) trabajan en una forma muy parecida a una fotocopiadora, excepto que el original no existe en papel sino en la memoria de la computadora. Todas las impresoras programables admiten la posibilidad de innumerables tipos de impresin, incluyendo grficos. Sin embargo, dependen totalmente de los programas respectivos para darles las instrucciones de impresin necesarias. Algunos de estos programas son tan avanzados, que permiten dibujar e impartir color a los dibujos. La impresin a color slo puede realizarse en una impresora de colores, en la actualidad todava muy cara, que por supuesto requiere pluralidad de tintas. La pluma de luz y el cursor Un aparato de entrada muy usado en programas educativos es la pluma de luz, que deriva su nombre del hecho de que tiene la apariencia de una pluma y de que su punta es sensible a la luz. De su otro extremo sale un cable conectado a la computadora. La funcin de este aparato es seleccionar algn punto de la pantalla, tocndolo levemente. Como la pantalla se refresca constantemente punto por punto, la computadora percibe la coincidencia entre el encendido de la pluma (por su sensibilidad a la luz) y el punto de la pantalla que se refresca en ese preciso momento. El programa que corre puede entonces hacer algo interesante con base en esa informacin. Una variacin til surgi cuando alguien se dio cuenta de que la pluma no tena que ser fsica para ser efectiva, y fue sustituida por una pequea mancha en la pantalla. Esa mancha, llamada cursor y cuya apariencia casi siempre una flecha la determina cada programa, es gobernada por el usuario sin necesidad de tocar la pantalla; por ejemplo mediante un ratn o una barra feliz (en ingls, "joy stick"). El ratn es una esferita dentro de una cpsula, que se hace rodar sobre una superficie: el movimiento de la esfera hace cambiar de lugar el cursor. El mismo efecto lo logra la inclinacin de la barra feliz, llamada as porque surgi como un accesorio para juegos (por ejemplo para mover una bola en un campo de juego dibujado en la pantalla). Tanto el ratn como la barra tienen un dispositivo que se aprieta para indicarle a la computadora que lo que indica el cursor en este momento es el elemento de la pantalla que queremos seleccionar. El ratn y la barra feliz son aparatos de entrada. Tinta magntica y lectoras pticas Otra manera de recibir datos es por medio de la lectura de inscripciones en papel con tinta magntica, muy usada por los bancos para imprimir nmeros de cuenta y otra informacin en sus cheques. El sistema usa una matriz de siete cuadrados horizontales y diez verticales; algunos de estos cuadrados se llenan con tinta magntica para formar caracteres especiales de figura estereotipada. Una mquina especial examina la matriz y busca los cuadros que tienen tinta, reconociendo as el carcter escrito. La lectora ptica es un aparato que recibe la luz reflejada por marcas de lpiz especial en un papel y la transforma en emisiones elctricas que la computadora puede reconocer.

La lectora de cdigo de barras es una lectora ptica especializada para leer configuraciones de barras de distinto ancho, usada en los supermercados y otras tiendas para imprimir el nombre de un producto. Adosada a una caja registradora computarizada, permite al cajero informar automticamente a la computadora qu clase de producto se ha vendido; la computadora consulta el precio del momento en una base de datos, imprime el recibo, y realiza cualesquiera movimientos en la contabilidad y el inventario que se consideren necesarios. Aparatos de voz, mdems Las computadoras de hoy tienen ya la Cuestin de vocabulario capacidad de aceptar voz humana como Cursor es un sealador que aparece en la pantalla de entrada y tambin de dar salidas con tonos la computadora y que puede moverse a voluntad mediante un aparato de entrada como el ratn. musicales que simulan esa voz. El equipo mdem es un aparato que convierte seales digitales para realizar esas proezas ya puede en seales analgicas y viceversa. Las seales conseguirse comercialmente. La voz produce digitales son las propias de la computadora y las seales de frecuencia auditiva que la analgicas son las propias de la red telefnica. computadora entiende como unos y ceros. Interfaz es el puente o conexin entre dos mdulos As pues, la funcin principal de los circuitos informticos, uno de los cuales puede ser el usuario receptores es convertir la seal auditiva, que humano. es continua o analgica, en una seal discontinua o digital; la de los circuitos generadores es exactamente la inversa. Siendo as que la voz de cada persona difiere de la de cualquier otra, e incluso puede variar de un da a otro, los programas que se encargan de la recepcin requieren que el usuario produzca suficientes muestras de los comandos que est interesado en que la computadora entienda. Estas muestras, guardadas en una base de datos, le servirn a la computadora para distinguir adecuadamente las entradas. Un mdem (modulador/demodulador) es un aparato de entrada y salida que permite a dos computadoras intercambiar informacin. Convierten seales digitales en analgicas y viceversa, pues la lnea telefnica trabaja con seales continuas.

De nuevo con el ncleo


Recordemos que el ncleo de la computadora est formado por la memoria y el procesador. En ste se realiza la elaboracin de informacin por la que le damos crdito a esta mquina extraordinaria: los aparatos perifricos introducen y sacan informacin de la computadora, pero el verdadero trabajo de cmputo se realiza dentro del ncleo.

La memoria es una entidad homognea, formada por muchas unidades idnticas, que podemos llamar celdas de memoria. El procesador, en cambio, es ms estructurado, pues contiene todo lo necesario para la ejecucin de los programas y la utilizacin de la memoria. Vamos a detenernos un momento en una descripcin general de cada uno de estos dos rganos fundamentales. La memoria La informacin se almacena en la memoria de una computadora bsicamente como un voltaje presente o ausente en un transistor. Por convencin, la presencia de voltaje se asocia con el signo 1 y su ausencia con el signo 0, pero bien podran considerarse a la inversa o tomar como interpretacin s y no o verdadero y falso o cualquier otro par de valores excluyentes. Esos unos y ceros se llaman bits e hileras de ellos pueden representar nmeros (en sistema binario) o caracteres (en algn cdigo alfabtico binario), como vimos antes. Las hileras son de distinto tamao en cada modelo de computadora, y ese tamao caracterstico se denomina el tamao de la palabra de tal computadora. Los tamaos de palabra van desde 8 bits (en las microcomputadoras ms simples) hasta 60 bits en las maxicomputadoras ms complejas. La memoria no valdra nada si no fuera accesible, es decir, si no fuera posible llegar cuando uno lo necesita a cada una de sus partes. Para asegurar esta accesibilidad, la computadora von Neuman se vale de un esquema de direccionamiento, semejante al que existe para diferenciar entre s a los distintos apartados postales o casillas de correo. A cada palabra se la dota de un nmero, que es su direccin. El tamao de la palabra de una computadora tiene la importancia de que cuanto ms grande es puede almacenar mayor nmero de direcciones diferentes, con lo que la respectiva memoria puede construirse ms grande: una palabra de 8 bits puede referirse directamente hasta a 28 = 256 direcciones distintas, contra 23 = 4.096 para una palabra de 32 bits. Estos nmeros no son lmites absolutos, pues los fabricantes se valen de muchos recursos para poder referirse a ms direcciones de las que caben en la respectiva palabra, pero esos recursos encarecen la mquina y la hacen menos eficiente. Las instrucciones de un programa generalmente mencionan una o ms direcciones para describir las operaciones que se realizan. Es responsabilidad del procesador el descodificar esas direcciones, es decir, transformar el nmero en una ruta de circuitos para llegar al lugar que representa. Igualmente es su responsabilidad establecer las conexiones que permiten replicar el contenido de ese lugar en una memoria especial del procesador, o viceversa, replicar el de esta en aquel. Existen dos clases fundamentales de celdas de memoria: aquellas en que se puede escribir y leer (conocidas como RAM, del ingls "random access memory", que es un mal nombre porque no es esta la nica memoria a que se puede llegar en forma aleatoria), y aquellas en que se puede escribir una vez, pero en adelante slo se pueden leer (conocidas como ROM, del ingls "read only memory"). RAM es la memoria de que est formada la mayor parte de la memoria central. ROM se reserva para la inscripcin de programas muy importantes que los fabricantes han querido que permanezcan sin alteracin durante la vida de la computadora.

El procesador El procesador se compone de dos partes: la unidad de control y la unidad lgico-aritmtica. El control. Tal y como es escrito por el programador, el programa que pone a funcionar la computadora se compone de una serie de instrucciones que deben ser descifradas y ejecutadas por la computadora una por una. Una de tales instrucciones puede ser por ejemplo sumar dos nmeros que estn en memoria y poner el resultado en una cierta direccin de la misma memoria. Tal instruccin se obedece copiando la instruccin en un lugar especial dentro de la unidad de control, descodificndola y disponiendo las conexiones necesarias para llevarla a cabo, de acuerdo con su significado. La operacin aritmtica la realizan circuitos especiales de la unidad lgico-aritmtica. Ejecutada la instruccin, la circuitera pasa a hacer lo mismo con la siguiente instruccin. Todo este proceso es realizado con ayuda de lugares de almacenamiento especiales dentro de la unidad de control, donde se guardan el texto de la instruccin descodificada, las direcciones de los datos con que se est operando y la direccin de la prxima instruccin. La unidad lgico-aritmtica. Es la circuitera que realiza las operaciones lgicas y aritmticas; es la parte ms compleja de la computadora, y est organizada en varios niveles. En un nivel alto, los circuitos pueden considerarse sumadores o multiplicadores, por ejemplo. En un nivel inferior, distinguimos semi-sumadores, con los que se construyen sumadores, entre otras configuraciones. En el nivel ms bajo encontramos puertas lgicas, capaces de interpretar, entre otras, las conectivas proposicionales "y", "o" y "no". Como una muestra, presentamos enseguida lo que se requiere para armar un sumador, a partir del nivel ms bajo. La primera clase de puerta lgica que nos interesa presentar es la que representa la conectiva "y", o sea la conjuncin lgica. Traducida a circuitos consiste en lo siguiente: si hay corriente en las lineas A y B habr tambin corriente en la lnea C. Basta que falte corriente en A o en B para que no la haya tampoco en C. Recurdese que los transistores son interruptores automticos, que producen corriente en una lnea segn haya o no corriente en otra; resulta, pues, sencillo producir una puerta Y con ayuda de transistores. En trminos de la representacin binaria, si se transmite uno por la lnea A y se transmite uno por la lnea B, se recibe uno por la lnea C. La presencia de un cero en cualquiera de las lneas A o B basta para que se reciba cero por la lnea C. El estudiante puede intentar ahora el ejercicio de aprendizaje iii. La segunda puerta lgica en que estamos interesados representa la conectiva "o", o sea la disyuncin lgica. Traducida a circuitos, consiste en lo siguiente: si hay corriente en una de las lneas A o B, habr corriente en la lnea C. Solamente si falta corriente en ambas lneas dejar de haberla tambin en la lnea C. En trminos de la representacin binaria, basta que se transmita uno por cualquiera de las lneas A o B para que se reciba uno por la lnea C. Solamente si se transmiten ceros por ambas lneas, A y B, se recibir cero por la lnea C. Adelante ahora el ejercicio de aprendizaje iv.

Finalmente, la puerta lgica que representa a la conectiva "no", o sea la negacin lgica, se traduce simplemente por un inversor de corriente: si hay corriente en la lnea A faltar corriente en la lnea B, y viceversa. Traducido a representacin binaria, la presencia de uno en la primera lnea produce cero en la segunda y viceversa. Adelante ahora el ejercicio de aprendizaje v.

Con estas tres clases de puertas se puede construir un semi-sumador que recibe dos dgitos binarios y produce un nmero binario de dos cifras cuyo valor mximo es dos. Finalmente, con dos semi-sumadores y una puerta O se puede construir un sumador, que recibe tres dgitos binarios y produce un nmero binario de dos cifras con cualquiera de los cuatro valores posibles. Los multiplicadores se organizan de parecida manera, con diversas combinaciones de puertas lgicas. Los nmeros negativos y las decisiones. La manera en que las computadoras restan es sumando un nmero negativo. Los nmeros se convierten en negativos por un procedimiento que se llama complemento de dos, que consiste en cambiar todos los unos a ceros, todos los ceros a unos y finalmente agregar 1. As por ejemplo, si la versin positiva de un nmero, el nmero +12, es 01100, su versin negativa, -12, es 10011 + 00001 = 10100. Si estuviramos usando ocho bits -lo que obligara a colocar tres ceros ms a la izquierda- la situacin sera 11110011 + 00000001 = 11110100. Como se ve, independientemente del tamao de la representacin, el primer bit de la izquierda es un 1 si el nmero es negativo. Esto permite la posibilidad de consultar muy rpidamente el resultado de una operacin de resta, lo que da base a la ejecucin condicional de una instruccin, como se pasa a explicar. Como se dijo al comienzo, la utilidad de las computadoras depende de que puedan encadenar instrucciones, y hagan distintas operaciones segn el resultado de las operaciones anteriores. Por ejemplo, es muy frecuente decirle a la computadora que compare dos nmeros y que si el primero es mayor que el otro se vaya a hacer un cierto subprograma, pero que de lo contrario contine con la secuencia de instrucciones principal. La manera de realizar esa ejecucin condicional es poniendo a la unidad lgico-aritmtica a restar los dos nmeros; enseguida el primer bit del resultado se transmite a la unidad de control, y segn sea su valor, cero o uno, se tomar como direccin de la prxima instruccin uno u otro de dos otros nmeros que se le han

suministrado como direcciones de posibles continuaciones. As, una cosa tan elaborada como una decisin sobre qu subprograma realizar pende completamente del valor uno o cero de un solo bt.

Programacin
Una computadora sin programacin es como un cuerpo sin vida. Es una mquina fsica, con capacidad para imitar a cualquier otra dentro de los lmites de su memoria, pero no imitar a ninguna mientras no se le den instrucciones para ello. Son esas instrucciones las que la convierten en otra mquina, una mquina virtual, mucho ms til que la mquina fsica. La primera mquina virtual que surge de la programacin es lo que llamamos sistema operativo. En el caso de las PCs, por ejemplo, es el MSDOS, o "disk operating system" de Microsoft, que le ofrece al usuario una interfaz bsica para entenderse con la mquina y su memoria adicional, a saber, los discos, duros o flexibles. La principal funcin del sistema operativo es permitirle al usuario acceso fcil a paquetes de informacin llamados archivos, almacenados en la memoria auxiliar, los cuales pueden agruparse en conjuntos jerarquizados llamados directorios. Sobre esa base del sistema operativo se montan distintos sistemas que hacen ms amable la interfaz con la mquina, como organizadores de directorios, administradores de ventanas (particiones de la pantalla que permiten correr programas distintos alternativamente), etc. Esas interfaces convierten al DOS en una mquina virtual todava ms elaborada. Tambin se montan sobre el sistema operativo los lenguajes de programacin, que permiten a los programadores elaborar el producto final de la computacin, a saber, los programas de aplicacin, como procesadores de texto, hojas electrnicas, calendarios, bases de datos, grficos y comunicaciones. Esos programas son las mquinas virtuales supremas, cuyo rostro es el que mira el usuario ordinario. Ms adelante hacemos una descripcin somera de ellos. Los programas iniciales de una computadora tienen que ser escritos usando el conjunto de instrucciones bsicas que define a la mquina original o fsica. Ese lenguaje, distinto para cada tipo de computadora, se llama lenguaje de mquina. La programacin en ese lenguaje es muy complicada y laboriosa, pues supone lidiar con cdigos de operaciones y direcciones absolutas en la memoria expresados con hileras interminables de unos y ceros. No es de extraar, pues, que lo primero que quisieron hacer los programadores fuera disear un lenguaje ms cmodo en el cual programar. Ese lenguaje de segundo nivel se llama lenguaje ensamblador y es tambin distinto para cada tipo de computadora. Es un ayudante del programador, que le permite expresar las direcciones de la memoria con smbolos arbitrarios, como TOTAL o COMIENZO, y las operaciones de la mquina con smbolos constantes, como ADD o SUB para representar las operaciones de suma o resta. El programa del lenguaje ensamblador toma a su cargo traducir los smbolos a nmeros binarios que representen las direcciones efectivas en la memoria y las instrucciones del lenguaje de mquina. Un ejemplo de instruccin en lenguaje ensamblador sera: SUM

VENTA TOTAL, donde SUM representa a la operacin de suma, VENTA es la direccin donde est un nmero y TOTAL es la direccin de nuestro acumulador de resultados. Cuestin de vocabulario El programa descrito produce una instrucciones escritas con smbolos mnemotcnicos en instrucciones de lenguaje de mquina. instruccin de lenguaje de mquina por cada Compilador es un programa que transforma instruccin que el programador escriba en instrucciones escritas en un lenguaje de alto nivel en lenguaje ensamblador, lo cual tiene dos instrucciones de lenguaje de mquina. defectos: el programa de aplicacin escrito Inteligencia artificial es el intento de lograr que las en lenguaje ensamblador es tan largo como computadoras sean capaces de realizar tareas que, si las hicieran seres humanos, diramos que requieren sera el correspondiente programa en inteligencia. lenguaje de mquina; adems, el programa correr solamente en un tipo de computadora. Ambos defectos se solucionan con la introduccin de lenguajes ms avanzados, como son el Fortran o el Pascal. Esos lenguajes, llamados lenguajes de alto nivel, producen generalmente varias instrucciones de lenguaje de mquina por cada instruccin escrita de acuerdo con sus convenciones. Adems, tales lenguajes son "independientes de mquina", es decir, pueden correr en cualquier computadora que tenga el compilador correspondiente. Se llama compilador precisamente al programa que transforma un programa escrito en lenguaje de alto nivel en un programa escrito en lenguaje de mquina que la computadora puede ejecutar. Un ejemplo de instruccin de alto nivel: Esta instruccin tpicamente resultar expandida en varias instrucciones, incluyendo comparacin por resta del acumulador y el tope e instruccin condicional de salto en caso de que el resultado de la comparacin sea negativo. MIENTRAS ACUMULADOR < TOPE SUM NUMERO ACUMULADOR Normalmente, los lenguajes de alto nivel son suficientes para escribir cualquier programa de aplicacin. No obstante, para ciertas aplicaciones muy avanzadas, como las de inteligencia artificial, se requieren lenguajes de muy alto nivel, ejemplos de los cuales son Lisp y Prolog. Se llaman de inteligencia artificial las aplicaciones que tratan de dotar a las computadoras de capacidades semejantes a las de la inteligencia humana. Un programa que juega ajedrez o que es capaz de probar teoremas de geometra, o de dar consejos mdicos es considerado como inteligencia artificial.
Ensamblador es un programa que transforma

Los principios de la programacin


Existe toda una ciencia, o arte, de la programacin, con principios ya bien establecidos, como en cualquier otra ciencia o tcnica. Esta obra no aspira a transmitir esos principios, que adems de conocerse deben practicarse en mucha variedad de casos para lograr asimilarlos. Sin embargo, y con el simple propsito de ilustracin, vamos a mencionar los ms importantes.

Ante todo, se debe tener en cuenta que en un programa habr siempre dos clases de elementos: los procedimientos, que son las acciones realizadas por el programa, y los datos, que son los materiales de que se ocupan los procedimientos. Podemos comparar el programa con una receta de cocina: ah tambin encontramos procedimientos y materiales. Sin embargo, existe una diferencia fundamental entre un programa y una receta, a saber, que los materiales de la receta, son productos alimenticios, mientras que en el caso de un programa tanto los procedimientos como los materiales son informacin. De todos modos hay un gran parecido entre programa y receta pues en ambos casos la tarea de los procedimientos es transformar los materiales de alguna manera. Los materiales ya transformados, tanto en el caso del programa como en el de la receta, son el resultado. Tenemos pues: PROCEDIMIENTOS DATOS

Tanto los procedimientos como los datos pueden ser primitivos o compuestos. Los procedimientos primitivos son los que vienen dados por el lenguaje de programacin que estemos usando; el programador no tiene que crearlos. Ejemplos son +, -, *, /, es decir, los procedimientos que corresponden a las operaciones aritmticas fundamentales. Tambin existen datos primitivos, por ejemplo los nmeros enteros o los nmeros reales: 132; 3,14; etc. Las palabras (secuencias de letras) son tambin datos primitivos. Podemos decir que los procedimientos y datos primitivos son como la materia prima de que se hacen los programas, como los ladrillos de los edificios computacionales. PROCEDIMIENTOS DATOS PRIMITIVOS +, -, *, / nmeros, palabras

Pero, adems de primitivos, necesitamos reglas de composicin, es decir, maneras de combinar varios elementos para obtener elementos ms complejos. As podemos originar procedimientos compuestos y tambin datos compuestos (conocidos con otro nombre como estructuras de datos). Una de las reglas de composicin de procedimientos, por ejemplo, es el procedimiento MIENTRAS que usamos antes como un ejemplo de instruccin compleja. Otro buen ejemplo sera la siguiente configuracin: SI <condicin> ENTONCES <accin A> EN CASO CONTRARIO <accin B>

En cuanto a los datos compuestos, un buen ejemplo de estructura de datos no muy

complicada es cualquier lista en que aparezcan varios datos concatenados. Tenemos entonces: PROCEDIMIENTOS DATOS PRIMITIVOS COMPUESTOS ...... ...... ...... ......

Por ltimo, existe el recurso llamado abstraccin, que consiste en ponerle un nombre a algo complejo, de modo que en adelante podamos seguir manejndolo por ese nombre simple, en vez de tener que lidiar con una estructura compleja. Esta es una de las ms poderosas armas de la computacin, como probablemente lo es tambin del pensamiento humano en general (por algo se dice que Adn, cuando fue creado, lo primero que hizo fue poner nombre a las cosas que vea a su alrededor). Ms cercano a nosotros, una estructura de datos puede llamarse LISTA-DE-MERCADO y ese nombre ser ms fcil de manejar que movilizando todo el tiempo una extensa y variada coleccin de nombres de productos. Y no solo los datos: tambin un procedimiento compuesto puede recibir un nombre, con lo cual se nos abre la posibilidad de invocarlo para realizar su tarea cuantas veces queramos a lo largo del programa. Bastar para ello poner su nombre donde la computadora espere ver un procedimiento. Tenemos, pues, finalmente: PROCEDIMIENTOS DATOS PRIMITIVOS COMPUESTOS ABSTRACCIONES ...... ...... ...... ...... ...... ......

Una de las aplicaciones ms lindas de este ltimo principio se da en la estrategia de recursin, que consiste en invocar un procedimiento compuesto como una abstraccin pues ha recibido un nombre invocndolo dentro de su propia definicin. Por ejemplo, tomemos como primitivo o previamente definido el procedimiento de solo un argumento DECIR. Podemos ahora definir el procedimiento compuesto RER, de la siguiente manera: Este procedimiento no necesita argumentos, de donde la lista vaca. El procedimiento consiste en dos instrucciones: DECIR JA y a continuacin RER que es una abstraccin, un nombre de un procedimiento compuesto, a saber, este mismo que estamos definiendo. El resultado de correr este programa sera que la computadora dira JA JA JA ... por siempre jams. DEFINO RER ( ) DECIR "JA" RER

No parece probable que queramos programar una computadora para que se ra eternamente, y tampoco parece deseable hacer un programa cuya ejecucin se prolongue indefinidamente (aunque si la computadora es un marcapasos para enfermos del corazn el paciente agradecer que el programa no se detenga nunca). Pero podemos construir programas recursivos que se detengan en algn momento, mediante una instruccin condicional que contenga una operacin de incremento o decremento. Por ejemplo, he aqu un programa para computar el factorial de un nmero: En este programa, si el dato es igual a 1, el resultado del procedimiento es 1; en otro caso, el resultado se obtiene multiplicando el dato por el factorial del dato menos 1. El factorial del nmero cada vez ms pequeo que resulta de substraer 1 del dato, se computa recursivamente, es decir, aplicando este mismo procedimiento. Cada invocacin a FACTORIAL comienza por comprobar si ya el dato se ha reducido tanto que se ha igualado a 1, en cuyo caso el programa se detiene. El procedimiento queda expandido en una serie de multiplicaciones, que son las operaciones que la computadora tiene realmente que realizar. Pero nosotros, gracias a los principios de composicin y abstraccin de procedimientos, podemos formular el problema de una manera sucinta y poderosa. Ms adelante volveremos a tratar de la recursin, un tema fascinante. DEFINO FACTORIAL (DATO) SI DAT0=1 ENTONCES 1 DE LO CONTRARIO, DATO * [FACTORIAL (DATO - 1)]

Los programas de aplicacin


Existen muchas clases de programas de aplicacin. Algunos de ellos son especializados, como programas para aprender mecanografa, o programas para notarios, arquitectos o msicos. Pero hay otros con propsitos muy generales, que pueden ser tiles a prcticamente cualquier persona. Terminamos esta seccin con una descripcin de los principales programas de la ltima clase. Procesadores de texto En otro apartado describimos cmo la computadora, revestida de un programa procesador de texto, sustituy con ventaja a la mquina de escribir. La razn principal es que el papel con sus borrones que afean el trabajo y consumen tanto tiempo queda eliminado de la etapa de preparacin del documento. En su lugar, la sola pantalla sustenta los caracteres, que aparecen y desaparecen como por arte de magia. Las teclas de funcin permiten movilizarse instantneamente de una parte del documento a otra, o buscar una palabra determinada en todo el texto, o sustituir lo escrito con mala ortografa por su versin correcta, todas las veces que aparece. Tambin permiten capturar una parte del texto y pasarla de lugar, o duplicarla, o transferirla a otro documento. Adicionalmente, los procesadores permiten verificar la ortografa de un texto e incluso su sintaxis y hasta cambiar sus palabras por otras de parecido significado. Algunos programas dejan al usuario escribir el texto "como suena", y entonces proponen la

ortografa correcta. Algunos procesadores ofrecen opcin de tipo de letra y, combinados con una buena impresora, hasta permiten producir libros. Hojas electrnicas Llamadas as por su parecido con las hojas que tradicionalmente han usado los contabilistas, son programas que permiten introducir texto y nmeros en un cuadriculado que se extiende en dos dimensiones casi indefinidamente. Son ideales para preparar un presupuesto, o los distintos elementos de una contabilidad, o cualquier otro documento en que haya sumas, multiplicaciones, u otras operaciones aritmticas: facturas, cuadros estadsticos, etc. En cada celda del cuadriculado el usuario puede colocar texto, nmeros o frmulas. Estas ltimas ofrecen el aspecto ms poderoso e interesante de la hoja electrnica: se refieren a otras celdas de la misma hoja, identificadas por sus coordenadas por ejemplo, la celda D13 es la que est en la columna D y en la hilera 13. Si la frmula definida en la celda E13 fuera la multiplicacin "C13 * D13", la mquina entender que debe hacer aparecer en ese punto de la pantalla (o del papel cuando la hoja electrnica se imprima) el resultado de multiplicar el nmero de la celda C13 por el nmero de la celda D13. Si cualquiera de esos nmeros cambia, el resultado de la celda E13 tambin cambiar, conforme a las leyes de la aritmtica. La hoja electrnica se ha convertido en instrumento inapreciable para los contabilistas y ha revolucionado completamente su profesin. Adems, ha brindado a muchas personas legas como amas de casa o pequeos empresarios la posibilidad de llevar sus cuentas de una manera ordenada y eficiente. Bases de datos Este es uno de los recursos de mayor uso y la ms fuerte motivacin para introducir computadoras en los negocios. Una base de datos es una forma organizada de almacenar y recuperar informacin; por su naturaleza, est sometida a cierto formato, que remeda la estructura que el mismo tipo de informacin tena en los antiguos archivos: colecciones de registros, llamadas ficheros, que mantienen relaciones entre s por ejemplo, el nombre de una persona puede aparecer en registros de distintos ficheros. Los registros manuales eran tarjetas de cartn; su versin electrnica son cuadros en la pantalla, con divisiones para diversos temes. Los ficheros manuales eran gavetas o cajas; su versin computacional son grupos de cuadros de una misma clase, que el usuario puede revisar con ayuda de un ndice que le permite pasar de uno a otro con gran facilidad. Una base de datos muy corriente es la que contiene informacin sobre empleados de una compaa: una ficha almacena condiciones personales, departamento en que trabajan, antigedad en los puestos, etc.; otra ficha describe las horas trabajadas por los empleados en cada perodo. Lo mejor que tienen las bases de datos es que a diferencia de los archivos manuales son capaces de combinar distintos ficheros: por ejemplo, pueden imprimir informes que incluyen las condiciones personales de los empleados de un cierto departamento lo que aparece en el fichero principal y los salarios devengados el ltimo mes que aparecen en el fichero de planilla.

Pero no solo los empresarios pueden beneficiarse de este tipo de programa: polticos, profesionales y hasta intelectuales pueden aprovecharlo. Personalmente, hemos levantado una base de datos de complejidad considerable para un profesional mdico: contiene un fichero para sus pacientes -con su historia clnica- y sendos ficheros para sus consultas e internamientos en el hospital (entre otros). Nosotros mismos mantenemos una base de datos con nuestras lecturas, donde hay ficheros distintos para artculos y libros ledos, autores de esos libros, compaas editoras y, finalmente, temas a que los artculos o libros se refieren todos interconectados unos con otros. Calendarios Uno de los programas ms tiles es el que permite listar los compromisos de cada da, as como las cosas que hay que hacer sin hora fija. Tales calendarios estn dotados de alarmas que recuerdan los compromisos unos minutos antes de su hora asignada. Admiten introducir obligaciones repetitivas, como la de recibir una leccin todos los martes a las 10 horas, o ir al peluquero el primer martes de cada mes, o pagar el marchamo del auto la ltima semana de diciembre. Programas graficadores Estos programas permiten representar toda clase de informacin en forma grfica, como por barras o un pastel dividido en secciones, o por el sistema de coordenadas. Funcionan muy bien como complemento de la hoja electrnica: algunos programas permiten que sus grficos puedan variar en correspondencia con los datos de la hoja. Adems, estos programas complementan el trabajo de los procesadores de texto, como ustedes pueden comprobar con las ilustraciones que acompaan este captulo. Ninguno de los autores de esta obra tiene especial capacidad para el dibujo; sin embargo, pudimos elaborar las ilustraciones con ayuda de un programa graficador y unos cuantos cuadros "enlatados", los cuales fue fcil modificar y combinar para lograr los efectos que desebamos. Programas de comunicaciones Nos hemos referido antes al mdem como un aparato capaz de poner en comunicacin a una computadora con otra. Ahora tenemos que advertir que esa comunicacin no se realiza por s misma, sino que necesita que ambas computadoras ejecuten un programa de comunicaciones. Tal programa se basa en protocolos, es decir, reglas de comunicacin, muy parecidas a las normas de cortesa que usamos los seres humanos para comunicar entre nosotros, o a las normas del protocolo diplomtico. Una de esas reglas establece la velocidad de transmisin de mensajes: las dos computadoras tienen que coincidir en la misma velocidad, o la comunicacin resultar imposible. Un beneficio adicional de estos programas, independiente de la comunicacin directa entre mquinas, es permitir al usuario la comodidad de encomendar a la computadora una llamada telefnica, sin tener que pasar por el martirio de llamar directamente muchas veces a una lnea ocupada. Integracin

Estos programas de aplicacin suelen mercadearse en la forma de paquetes, producidos por una misma compaa y totalmente compatibles entre s. Los paquetes contienen todos o gran parte de los programas descritos, as como un administrador de archivos y tal vez una calculadora ms poderosa que las calculadoras de bolsillo. Las ventajas de esta integracin son extraordinarias. Por ejemplo, es posible producir un cuadro con la hoja electrnica, convertirlo en un grfico con el programa graficador e incorporarlo como una ilustracin en el documento preparado con el procesador de texto. Podemos, tambin, recoger informacin de alguna de nuestras bases de datos para incorporarla en el mismo documento, o al revs importar un texto preparado con el procesador dentro de alguna base de datos. Las posibilidades de correlacin son numerossimas.
y

Ejercicios de aprendizaje i. Obtenga acceso a una microcomputadora dotada de perifricos. Puede ser de un amigo o vecino, la de un negocio conocido, o la del centro educativo ms cercano que tenga laboratorio de computacin. Identifique en esa computadora los distintos aparatos perifricos de que disponga. Averige qu cantidad de memoria central tiene. ii. Pdale a la persona responsable de esa computadora que le muestre algunos de los programas de aplicacin que emplea frecuentemente. Si es programador, pdale que le muestre un ejemplo de instrucciones en el lenguaje que ms use. iii. Reproduzca diez veces el grfico en que aparecen las tres clases de puertas lgicas. Use esas reproducciones para este ejercicio y los dos siguientes. Tome cuatro copias del grfico. Concntrese en la puerta Y. Coja la primera copia. Dibjele direccin a las lneas A y B para que se vea que entran a la puerta Y. Dibjele direccin a la lnea C para que se vea que sale de la puerta Y. Ponga ahora un 1 en cada una de las lneas entrantes A y B. Ponga un 1 en la lnea saliente C. Tome otra copia. Ponga un 1 en la lnea entrante A y un 0 en la lnea entrante B. Ponga un 0 en la lnea saliente C. Cmo debe terminar esta tabla de valores de la conjuncin, usando las otras dos copias del grfico? iv. Tome cuatro copias del grfico de las puertas lgicas. Concntrese en la puerta O. Coja la primera copia. Dibjele direccin a las lneas A y B, para que se vea que entran a la puerta O. Dibjele direccin a la lnea C para que se vea que sale de la puerta O. Ponga un 0 en cada una de las lneas entrantes A y B. Ponga un 0 en la lnea saliente C. Tome otra copia. Ponga un 1 en la lnea entrante A y un 0 en la lnea entrante B. Ponga un 1 en la lnea saliente C. Termine esta tabla de valores de la disyuncin, usando las dos otras copias del grfico. v. Tome una copia del grfico; concntrese en la puerta NO y escriba un 1 encima de su lnea A. Escriba ahora un 0 encima de su lnea B. Pngales direccin a las dos lneas, de modo que se vea claro que la lnea A entra a la puerta NO y la lnea B sale de ella. En otra copia del grfico ponga un 0 sobre la lnea A de la puerta NO. Qu deber escribir encima de la lnea B de la misma puerta? vi. Reproduzca los grficos de semisumador y sumador las veces que sean necesarias para poder hacer sendos ejercicios como los que hizo con las

puertas lgicas. Haga esos ejercicios, primero los del semisumador y luego los del sumador, poniendo unos o ceros en las entradas y decidiendo qu debe poner sobre cada lnea de salida. Este ejercicio es difcil y tiene carcter optativo; si lo hace bien, probablemente podra ganarse la vida fabricando computadoras.
y

Ejercicios de auto-evaluacin i. Escriba las partes que constituyen el ncleo de una computadora y describa la funcin propia de cada una. ii. Enumere cuatro clases de perifrico de una computadora, indicando si se trata de un aparato de entrada, de salida, o de ambas cosas. iii. Explique cmo representa la computadora la informacin numrica y no numrica. iv. Explique cul es el papel que juegan los transistores dentro de una computadora. v. Explique la diferencia entre mquina fsica, sistema operativo, lenguaje de programacin y programa de aplicacin. D un ejemplo de programa de aplicacin. vi. Elija una rutina de su vida corriente, como prepararse en la maana para ir al trabajo, y pngala por escrito como lista de pasos a ejecutar. Trate de incluir algunos pasos condicionales, segn los cuales se puedan realizar tareas distintas conforme a las circunstancias. Trate de distinguir subprocedimientos dentro de los procedimientos, y dles un nombre para poderlos usar varias veces en distintos puntos del programa.