Download UNI RUACS ESTELI

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
HISTORIA Y DESCRIPCIÓN FUNCIONAL DE LOS SISTEMAS DE CÓMPUTOS
Informática o Computación, conjunto de conocimientos científicos y de técnicas que hacen
posible el tratamiento automático de la información por medio de computadoras. La informática
combina los aspectos teóricos y prácticos de la ingeniería, electrónica, teoría de la información,
matemáticas, lógica y comportamiento humano. Los aspectos de la informática cubren desde la
programación y la arquitectura informática hasta la inteligencia artificial y la robótica.
.
1
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Cometa Bennett
En 1970, el astrónomo amateur sudafricano J. Bennett
observó este brillante cometa con una larga cola gaseosa.
Mediante una técnica informática llamada cartografía
isofotográfica se ha realizado esta imagen asignando
colores diferentes a los diversos tonos grises de la
fotografía original en blanco y negro.
Shell (informática), elemento de software, que puede ser un programa independiente o constituir
un elemento básico de un sistema operativo. Proporciona una comunicación directa entre el
usuario y el propio sistema operativo, y así facilita la ejecución de órdenes o comandos del
sistema y de los programas que se ejecutan en él. Con un shell se busca un uso más simple,
generalmente mediante la utilización de menús, cajas de diálogo y ayudas acerca de su uso o de la
sintaxis de órdenes. Se trata, en definitiva, de la parte del sistema que se muestra al usuario final,
para que interactúe con él.
Accesorio (informática), periférico o dispositivo complementario de un ordenador o
computadora, como un ratón (mouse) o un módem. El accesorio ofrece una funcionalidad que no
está disponible en la máquina original, pero que no es necesaria para el funcionamiento de la
misma. No obstante, el accesorio puede resultar imprescindible para determinadas tareas; por
ejemplo, el módem es imprescindible para conectarse a Internet.
La incorporación del ordenador o computadora en las
oficinas, constituyó una revolución en los sistemas
ofimáticos, ya que las máquinas ofrecían el medio para
realizar comunicaciones e intercambio de información
instantáneos entre compañeros de trabajo, recursos y
equipos. Los accesorios, como el mouse (ratón), facilitan el
desplazamiento dentro de las aplicaciones (programas de
computadora). Los rápidos avances tecnológicos han
mejorado 2los sistemas informáticos y, al mismo tiempo,
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
han disminuido los precios, haciendo que los equipos sean más asequibles.
INTRODUCCIÓN a la Arquitectura (informática),
Arquitectura (informática), término general que se aplica a la estructura de un sistema
informático o de una parte del mismo. El término se aplica también al diseño del software
de sistema, por ejemplo, el sistema operativo, y a la combinación de hardware y software
básico que comunica los aparatos de una red informática. La arquitectura de ordenadores
se refiere a toda una estructura y a los detalles necesarios para que sea funcional, es decir,
cubre sistemas informáticos, microprocesadores, circuitos y programas del sistema. Por lo
general, el término no suele referirse a los programas de aplicación, como hojas de cálculo
o procesadores de textos, que son necesarios para realizar una tarea pero no para que el
sistema funcione.
ELEMENTOS DE DISEÑO
Al diseñar un sistema informático, se tienen en cuenta los cinco elementos fundamentales
que componen el hardware: la unidad aritmético-lógica, la unidad de control, la memoria,
la entrada y la salida. La unidad aritmético-lógica realiza operaciones aritméticas y
compara valores numéricos. La unidad de control dirige el funcionamiento de la
computadora recibiendo instrucciones del usuario y transformándolas en señales eléctricas
que puedan ser comprendidas por los circuitos del ordenador. La combinación de la unidad
aritmético-lógica y la unidad de control se denomina unidad central de procesamiento, o
CPU (siglas en inglés). La memoria almacena instrucciones y datos. Las secciones de
entrada y salida permiten respectivamente que la computadora reciba y envíe datos.
Se necesitan arquitecturas diferentes de hardware debido a las necesidades especializadas
de los distintos sistemas y usuarios. Por ejemplo, un usuario puede necesitar que su sistema
muestre gráficos de forma extremadamente rápida, mientras que otro tal vez necesite
buscar eficazmente en una base de datos o tener un consumo bajo de energía, como en el
caso de ordenadores personales portátiles.
Además del diseño del hardware, se debe considerar los sistemas operativos que harán
funcionar el sistema. El software, como los lenguajes de programación y los sistemas
operativos, hace que los detalles de la arquitectura del hardware resulten invisibles para el
usuario. Por ejemplo, diferentes computadoras que empleen el lenguaje de programación C
o el sistema operativo UNIX pueden parecer iguales desde el punto de vista del usuario
aunque la arquitectura de hardware sea diferente.
ARQUITECTURA DE PROCESAMIENTO
Una computadora ejecuta una instrucción en cinco pasos. En primer lugar, la unidad de
control recupera la instrucción desde la memoria; por ejemplo, la instrucción de sumar dos
números. En segundo lugar, la unidad de control descodifica la instrucción y la convierte
en señales electrónicas que controlan la computadora. En tercer lugar, la unidad de control
recupera los datos necesarios para ejecutar la instrucción (en este caso, los dos números).
En cuarto lugar, la unidad aritmético-lógica ejecuta la operación (la adición de ambos
números). En quinto lugar, la unidad de control almacena el resultado (en este caso, el
número resultante de la suma).
3
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Las primeras computadoras sólo empleaban instrucciones sencillas, porque el coste de los
dispositivos electrónicos capaces de ejecutar instrucciones complejas era muy elevado. A
medida que este coste fue disminuyendo, a lo largo de la década de 1960, fueron posibles
instrucciones más complicadas. Las instrucciones complejas (instrucciones únicas que
especifican operaciones múltiples) pueden ahorrar tiempo al evitar que el ordenador tenga
que recuperar instrucciones adicionales. Por ejemplo, si se combinan siete operaciones en
una instrucción, se eliminan seis de los pasos de recuperación de instrucciones, y la
computadora tarda menos tiempo en procesar la operación correspondiente. Los
ordenadores que combinan varias operaciones en una sola instrucción se denominan
ordenadores CISC.
Sin embargo, la mayoría de los programas no utilizan instrucciones complejas, sino que
constan esencialmente de instrucciones simples. Cuando estas instrucciones simples se
ejecutan en una arquitectura CISC, el proceso es más lento, porque en un diseño CISC
todas las instrucciones, simples o complejas, tardan más en ser descodificadas. Una
estrategia alternativa es volver a diseños que utilizan sólo juegos de instrucciones sencillas
y hacer que las operaciones más usadas se ejecuten más rápidamente para aumentar el
rendimiento global. Las computadoras que emplean este diseño se llaman RISC.
Los diseños RISC son especialmente rápidos para realizar los cómputos numéricos
necesarios en aplicaciones científicas, de gráficos y de ingeniería. Los llamados
procesadores de señales digitales son arquitecturas CISC especializadas para acelerar el
procesado de señales digitalizadas de audio y vídeo.
ARQUITECTURAS ABIERTAS Y CERRADAS
La CPU de un ordenador está conectada con la memoria y con el mundo exterior a través
de una arquitectura que puede ser abierta o cerrada. Las arquitecturas abiertas pueden
ampliarse después de la construcción del sistema, generalmente añadiendo circuitos
adicionales, por ejemplo, conectando al sistema principal un chip con un nuevo
microprocesador. Las especificaciones del sistema se hacen públicas, lo que permite que
otras empresas puedan fabricar los productos de expansión.
Las arquitecturas cerradas suelen utilizarse en computadoras especializadas que no
necesitan ampliaciones, como los microprocesadores que controlan los hornos de
microondas. Algunos fabricantes de ordenadores han empleado arquitecturas cerradas para
que sus clientes obtengan los circuitos de ampliación únicamente a través de ellos. El
fabricante cobra más, pero las opciones para el consumidor se reducen.
ARQUITECTURA DE REDES
Las computadoras se comunican por medio de redes. La red más sencilla es una conexión
directa entre dos computadoras. Sin embargo, también pueden conectarse a través de
grandes redes que permiten a los usuarios intercambiar datos, comunicarse mediante
4
correo electrónico y compartir recursos, por ejemplo,
impresoras.
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Las computadoras pueden conectarse de distintas formas. En una configuración en anillo,
los datos se transmiten a lo largo del anillo, y cada computadora examina los datos para
determinar si van dirigidos a ella. Si no es así, los transmite a la siguiente computadora del
anillo. Este proceso se repite hasta que los datos llegan a su destino. Una red en anillo
permite la transmisión simultánea de múltiples mensajes, pero como varias computadoras
comprueban cada mensaje, la transmisión de datos resulta más lenta.
En una configuración de bus, los ordenadores están conectados a través de un único
conjunto de cables denominado bus. Un ordenador envía datos a otro transmitiendo a
través del bus la dirección del receptor y los datos. Todos los ordenadores de la red
examinan la dirección simultáneamente, y el indicado como receptor acepta los datos. A
diferencia de una red en anillo, una red de bus permite que un ordenador envíe
directamente datos a otro. Sin embargo, en cada momento sólo puede transmitir datos una
de las computadoras, y las demás tienen que esperar para enviar sus mensajes.
En una configuración en estrella, los ordenadores están conectados con un elemento
integrador llamado hub. Las computadoras de la red envían la dirección del receptor y los
datos al hub, que conecta directamente los ordenadores emisor y receptor. Una red en
estrella permite enviar simultáneamente múltiples mensajes, pero es más costosa porque
emplea un dispositivo adicional —el hub— para dirigir los datos.
AVANCES RECIENTES
Uno de los problemas en arquitectura de ordenadores es la diferencia entre la velocidad de
la CPU y la velocidad con que la memoria proporciona instrucciones y datos. Las CPU
modernas pueden procesar instrucciones en 3 nanosegundos (3.000 millonésimas de
segundo). Un acceso a memoria típico, en cambio, requiere 70 nanosegundos, y cada juego
de instrucciones puede suponer múltiples accesos. Para compensar esta disparidad se han
diseñado nuevos chips que sitúan cerca de la CPU memorias muy rápidas llamadas caché.
Debido a su proximidad a la CPU y a su rapidez, las memorias caché pueden suministrar
instrucciones y datos más rápidamente que la memoria normal. La memoria caché
almacena las instrucciones y datos empleados más frecuentemente, y mejora notablemente
la eficacia de la computadora.
Aunque una memoria caché más grande puede contener más datos, también resulta
proporcionalmente más lenta. Por eso, los arquitectos de ordenadores emplean diseños con
múltiples memorias caché. En estos diseños se coloca la memoria caché más pequeña y
rápida más cerca de la CPU, y se sitúa más lejos de ésta una segunda memoria caché
mayor y más lenta. Esta disposición permite que la CPU utilice a velocidad máxima las
instrucciones y datos más usados, y que sólo opere más lentamente cuando accede a la
memoria caché secundaria. El empleo de memorias caché diferentes para instrucciones y
datos también permite a la CPU recuperar simultáneamente una instrucción y un dato.
Otra estrategia para aumentar la velocidad y la eficacia es el uso de múltiples unidades
aritmético-lógicas para efectuar operaciones simultáneas, la llamada ejecución
superescalar. En este diseño, las instrucciones se recuperan en grupos. La unidad de
control examina cada grupo para comprobar si contiene instrucciones que pueden
ejecutarse a la vez. Algunos diseños llegan 5a ejecutar seis operaciones simultáneamente.
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Sin embargo, es raro que se ejecuten tantas instrucciones simultáneas, por lo que en
promedio la CPU no llega a multiplicar por seis el rendimiento.
A veces se combinan varias computadoras en sistemas únicos llamados procesadores
paralelos. Cuando una máquina tiene más de 1.000 unidades aritmético-lógicas, se dice que
es masivamente paralela. Estas máquinas se usan fundamentalmente para cálculos
científicos o de ingeniería, que exigen gran cantidad de cómputos numéricos. Se han
construido ordenadores paralelos que contienen hasta 16.000 procesadores
Programación informática,
Acción de programar, es decir, de establecer una serie de instrucciones para que el
ordenador o computadora ejecute una tarea.
Previamente hay que realizar una serie de trabajos que tienen por objeto la definición de la
tarea, el análisis de la información que se quiere obtener (información de salida) y de los
datos que se precisan para ello (información de entrada), y el establecimiento del
algoritmo, o procedimiento de cálculo, que va a permitir transformar una información en
otra. Para esta labor de análisis, el programador utiliza una serie de herramientas, entre las
que destacan los diagramas de flujo y las tablas de decisión.
Resuelto del problema desde el punto de vista lógico, se utiliza un lenguaje de
programación para codificar la secuencia de instrucciones que el ordenador debe ejecutar
para realizar la tarea.
Escrito el programa, hay verificarlo, es decir, someterlo a pruebas que determinen si puede
realizar la tarea prevista, lo que se consigue simulando situaciones que se puedan
comprobar; a esto se le denomina depuración. Una vez verificado, el programa se debe
optimizar, con el fin de que utilice los recursos del sistema del modo más eficiente.
Es muy importante documentar el programa, es decir, escribir una descripción del mismo
que permita actuar sobre él a un programador distinto del que lo creó. Además, si el
programa va a ser utilizado por múltiples usuarios, hay que redactar su manual de
instrucciones.
Existe, finalmente, otro requisito importante en programación informática: que se pueda
realizar el mantenimiento del programa, esto es, su adaptación a variantes de la tarea que
se puedan presentar o a novedades que aparezcan en el sistema informático.
6
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
LENGUAJE DE PROGRAMACIÓN
INTRODUCCIÓN
Lenguaje de programación, en informática, cualquier lenguaje artificial que puede
utilizarse para definir una secuencia de instrucciones para su procesamiento por un
ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de
programación. Se asume generalmente que la traducción de las instrucciones a un código
que comprende la computadora debe ser completamente sistemática. Normalmente es la
computadora la que realiza la traducción.
Aplicación de lenguajes de programación
Los lenguajes de programación permiten comunicarse con los ordenadores o computadoras. Una
vez identificada una tarea, el programador debe traducirla o codificarla a una lista de
instrucciones que la computadora entienda. Un programa informático para determinada tarea
puede escribirse en varios lenguajes. Según la función, el programador puede optar por el
lenguaje que implique el programa menos complicado. También es importante que el
programador elija el lenguaje más flexible y más ampliamente compatible para el caso de que el
programa tenga varias aplicaciones. Los ejemplos que se ven en la ilustración son programas
escritos para calcular el promedio de una serie de números. C y BASIC son los lenguajes de
computadora más utilizados. En el recuadro inferior de la ilustración se muestra cómo una
computadora procesará y ejecutará los comandos de los programas.
LENGUAJES DE BAJO NIVEL
Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente señales
electrónicas binarias. Dar una instrucción a un microprocesador supone en realidad enviar
series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia
de señales se denomina código máquina. El código representa normalmente datos y
números e instrucciones para manipularlos. Un modo más fácil de comprender el código
máquina es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o
JUMP. Esta abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel
que es específico de cada microprocesador.
Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son a menudo
difíciles de aprender. Más importante es el hecho de que los programas escritos en un bajo
nivel son prácticamente específicos para cada7 procesador. Si se quiere ejecutar el programa
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
en otra máquina con otra tecnología, será necesario reescribir el programa desde el
principio.
LENGUAJES DE ALTO NIVEL
Por lo general se piensa que los ordenadores son máquinas que realizan tareas de cálculos
o procesamiento de textos. La descripción anterior es sólo una forma muy esquemática de
ver una computadora. Hay un alto nivel de abstracción entre lo que se pide a la
computadora y lo que realmente comprende. Existe también una relación compleja entre
los lenguajes de alto nivel y el código máquina.
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados
por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel
más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse
para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para
muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las
computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma
rígida y sistemática.
INTÉRPRETES Y COMPILADORES
La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a
un código máquina (o código objeto) no es un proceso muy complicado y se realiza
normalmente por un programa especial llamado compilador. La traducción de un código
fuente de alto nivel a un código máquina también se realiza con un compilador, en este
caso más complejo, o mediante un intérprete. Un compilador crea una lista de
instrucciones de código máquina, el código objeto, basándose en un código fuente. El
código objeto resultante es un programa rápido y listo para funcionar, pero que puede
hacer que falle el ordenador si no está bien diseñado. Los intérpretes, por otro lado, son
más lentos que los compiladores ya que no producen un código objeto, sino que recorren el
código fuente una línea cada vez. Cada línea se traduce a código máquina y se ejecuta.
Cuando la línea se lee por segunda vez, como en el caso de los programas en que se
reutilizan partes del código, debe compilarse de nuevo. Aunque este proceso es más lento,
es menos susceptible de provocar fallos en la computadora.
Código fuente, en informática, las instrucciones de programa legibles por el programador y
escritas en un lenguaje ensamblador o de más alto nivel. El concepto contrario es el código
objeto, que se deriva del código fuente y está diseñado para ser legible sólo por la máquina.
Código objeto, en informática, código generado por un compilador o un ensamblador, traducido
a partir del código fuente de un programa. Casi siempre este término se refiere al código máquina
8
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
que puede ejecutarse directamente en la unidad central de proceso (CPU) del sistema, pero
también puede ser código fuente de lenguaje ensamblador o una variante de código máquina.
Programa, en informática, sinónimo de software, el conjunto de instrucciones que ejecuta un
ordenador o computadora. El término puede referirse al código fuente original o a la versión
ejecutable (en lenguaje máquina) de un componente de software. Cuando se habla de un
programa se supone un cierto grado de terminación, o sea, se da por hecho que están presentes
todas las instrucciones y archivos necesarios para la interpretación o compilación del programa.
Por otro lado, se entiende que un programa ejecutable puede cargarse en un entorno
determinado y ejecutarse independientemente de otros programas
Unidad central de proceso
INTRODUCCIÓN
Unidad central de proceso o UCP (conocida por sus siglas en inglés, CPU), circuito
microscópico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el
proceso de datos en las computadoras. Generalmente, la CPU es un microprocesador
fabricado en un chip, un único trozo de silicio que contiene millones de componentes
electrónicos. El microprocesador de la CPU está formado por una unidad aritmético-lógica
que realiza cálculos y comparaciones, y toma decisiones lógicas (determina si una
afirmación es cierta o falsa mediante las reglas del álgebra de Boole); por una serie de
registros donde se almacena información temporalmente, y por una unidad de control que
interpreta y ejecuta las instrucciones. Para aceptar órdenes del usuario, acceder a los datos
y presentar los resultados, la CPU se comunica a través de un conjunto de circuitos o
conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por
ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y
los dispositivos de salida (por ejemplo, un monitor o una impresora).
FUNCIONAMIENTO DE LA CPU
Cuando se ejecuta un programa, el registro de la CPU, llamado contador de programa,
lleva la cuenta de la siguiente instrucción, para garantizar que las instrucciones se ejecuten
en la secuencia adecuada. La unidad de control de la CPU coordina y temporiza las
funciones de la CPU, tras lo cual recupera la siguiente instrucción desde la memoria. En
una secuencia típica, la CPU localiza la instrucción en el dispositivo de almacenamiento
correspondiente. La instrucción viaja por el bus desde la memoria hasta la CPU, donde se
almacena en el registro de instrucción. Entretanto, el contador de programa se incrementa
en uno para prepararse para la siguiente instrucción. A continuación, la instrucción actual
es analizada por un descodificador, que determina lo que hará la instrucción. Cualquier
dato requerido por la instrucción es recuperado
desde el dispositivo de almacenamiento
9
correspondiente y se almacena en el registro de datos de la CPU. A continuación, la CPU
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
ejecuta la instrucción, y los resultados se almacenan en otro registro o se copian en una
dirección de memoria determinada.
Inteligencia artificial,
Término que, en su sentido más amplio, indicaría la capacidad de un artefacto de realizar
los mismos tipos de funciones que caracterizan al pensamiento humano. La posibilidad de
desarrollar un artefacto así ha despertado la curiosidad del ser humano desde la antigüedad;
sin embargo, no fue hasta la segunda mitad del siglo XX, cuando esa posibilidad se
materializó en herramientas tangibles.
El término inteligencia artificial (IA) fue acuñado en 1956 por John McCarthy, del
Instituto de Tecnología de Massachussets. En ese año se celebró la conferencia de
Dartmouth, en Hanover (Estados Unidos), y en ella, McCarthy, Marvin Minsky, Nathaniel
Rochester y Claude E. Shannon establecieron las bases de la inteligencia artificial como un
campo independiente dentro de la informática. Previamente, en 1950, Alan M. Turing
había publicado un artículo en la revista Mind, titulado “Computing Machinery and
Intelligence” (“Ordenador e inteligencia”), en el que reflexionaba sobre el concepto de
inteligencia artificial y establecía lo que luego se conocería como el test de Turing, una
prueba que permite determinar si un ordenador o computadora se comporta conforme a lo
que se entiende como artificialmente inteligente o no.
Con el avance de la ciencia moderna la búsqueda de la IA ha tomado dos caminos
fundamentales: la investigación psicológica y fisiológica de la naturaleza del pensamiento
humano, y el desarrollo tecnológico de sistemas informáticos cada vez más complejos.
En este sentido, el término IA se ha aplicado a sistemas y programas informáticos capaces
de realizar tareas complejas, simulando el funcionamiento del pensamiento humano,
aunque todavía muy lejos de éste. En esta esfera los campos de investigación más
importantes son el procesamiento de la información, el reconocimiento de modelos, los
juegos y las áreas aplicadas, como el diagnóstico médico. Un ejemplo de los logros
alcanzados fue la partida de ajedrez que el superordenador de IBM denominado Deep Blue
ganó, en mayo de 1997, al campeón del mundo Gari Kaspárov.
Algunas áreas de la investigación actual del procesamiento de la información están
centradas en programas que permiten a un ordenador o computadora comprender la
información escrita o hablada, y generar resúmenes, responder a preguntas específicas o
redistribuir datos a los usuarios interesados en determinados sectores de esta información.
En esos programas es esencial la capacidad del sistema de generar frases gramaticalmente
correctas y de establecer vínculos entre palabras e ideas. La investigación ha demostrado
que mientras que la lógica de la estructura del lenguaje, su sintaxis, está relacionada con la
programación, el problema del significado, o semántica, es mucho más profundo, y va en
la dirección de una auténtica inteligencia artificial.
Actualmente existen dos tendencias en cuanto al desarrollo de sistemas de IA: los sistemas
expertos y las redes neuronales. Los sistemas expertos intentan reproducir el razonamiento
humano de forma simbólica. Las redes neuronales lo hacen desde una perspectiva más
biológica (recrean la estructura de un cerebro humano mediante algoritmos genéticos). A
pesar de la complejidad de ambos sistemas 1los resultados distan mucho de un auténtico
0
pensamiento inteligente.
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Muchos científicos se muestran escépticos acerca de la posibilidad de que alguna vez se
pueda desarrollar una verdadera IA. El funcionamiento de la mente humana todavía no ha
llegado a conocerse en profundidad y, en consecuencia, el diseño informático seguirá
siendo esencialmente incapaz de reproducir esos procesos desconocidos y complejos.
LISP, en informática, acrónimo de List Processing. Un lenguaje de programación para ordenadores
o computadoras orientado a la generación de listas, desarrollado en 1959-1960 por John
McCarthy y usado principalmente para manipular listas de datos. El lenguaje LISP constituyó un
cambio radical con respecto a los lenguajes procedurales (FORTRAN, ALGOL) que se desarrollaban
por entonces. El LISP es un lenguaje interpretado, en el que cada expresión es una lista de
llamadas a funciones. Este lenguaje se sigue utilizando con frecuencia en investigación y en
círculos académicos, y fue considerado durante mucho tiempo el lenguaje modelo para la
investigación de la inteligencia artificial (IA), aunque el Prolog ha ganado terreno durante los
últimos años.
1
1
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
ORDENADOR
INTRODUCCIÓN
Ordenador o Computadora, dispositivo electrónico capaz de recibir un conjunto de instrucciones
y ejecutarlas realizando cálculos sobre los datos numéricos, o bien compilando y correlacionando
otros tipos de información.
El mundo de la alta tecnología nunca hubiera existido de no ser por el desarrollo del ordenador o
computadora. Toda la sociedad utiliza estas máquinas, en distintos tipos y tamaños, para el
almacenamiento y manipulación de datos. Los equipos informáticos han abierto una nueva era en
la fabricación gracias a las técnicas de automatización, y han permitido mejorar los sistemas
modernos de comunicación. Son herramientas esenciales prácticamente en todos los campos de
investigación y en tecnología aplicada.
2
TIPOS DE ORDENADORES O COMPUTADORAS
En la actualidad se utilizan dos tipos principales de ordenadores: analógicos y digitales. Sin
embargo, el término ordenador o computadora suele utilizarse para referirse exclusivamente al
tipo digital. Los ordenadores analógicos aprovechan la similitud matemática entre las
interrelaciones físicas de determinados problemas y emplean circuitos electrónicos o hidráulicos
para simular el problema físico. Los ordenadores digitales resuelven los problemas realizando
cálculos y tratando cada número dígito por dígito.
Las instalaciones que contienen elementos de ordenadores digitales y analógicos se denominan
ordenadores híbridos. Por lo general se utilizan para problemas en los que hay que calcular
grandes cantidades de ecuaciones complejas, conocidas como integrales de tiempo. En un
ordenador digital también pueden introducirse datos en forma analógica mediante un
convertidor analógico digital, y viceversa (convertidor digital a analógico).
2.1 Ordenadores analógicos
El ordenador analógico es un dispositivo electrónico o hidráulico diseñado para manipular la
entrada de datos en términos de, por ejemplo, niveles de tensión o presiones hidráulicas, en lugar
de hacerlo como datos numéricos. El dispositivo de cálculo analógico más sencillo es la regla de
cálculo, que utiliza longitudes de escalas especialmente calibradas para facilitar la multiplicación,
la división y otras funciones. En el típico ordenador analógico electrónico, las entradas se
convierten en tensiones que pueden sumarse o multiplicarse
empleando elementos de circuito de
1
2
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
diseño especial. Las respuestas se generan continuamente para su visualización o para su
conversión en otra forma deseada.
2.2 Ordenadores digitales
Todo lo que hace un ordenador digital se basa en una operación: la capacidad de determinar si un
conmutador, o ‘puerta’, está abierto o cerrado. Es decir, el ordenador puede reconocer sólo dos
estados en cualquiera de sus circuitos microscópicos: abierto o cerrado, alta o baja tensión o, en
el caso de números, 0 o 1. Sin embargo, es la velocidad con la cual el ordenador realiza este acto
tan sencillo lo que lo convierte en una maravilla de la tecnología moderna. Las velocidades del
ordenador se miden en megahercios (millones de ciclos por segundo), aunque en la actualidad se
alcanzan velocidades del orden de los gigahercios (miles de millones de ciclo por segundo).
Un ordenador con una velocidad de reloj de 1 gigahercio (GHz), velocidad bastante representativa
de un microordenador o microcomputadora, es capaz de ejecutar 1.000 millones de operaciones
discretas por segundo, mientras que las supercomputadoras utilizadas en aplicaciones de
investigación y de defensa alcanzan velocidades de billones de ciclos por segundo.
La velocidad y la potencia de cálculo de los ordenadores digitales se incrementan aún más por la
cantidad de datos manipulados durante cada ciclo. Si un ordenador verifica sólo un conmutador
cada vez, dicho conmutador puede representar solamente dos comandos o números. Así, ON
simbolizaría una operación o un número, mientras que OFF simbolizará otra u otro. Sin embargo,
al verificar grupos de conmutadores enlazados como una sola unidad, el ordenador aumenta el
número de operaciones que puede reconocer en cada ciclo. Por ejemplo, un ordenador que
verifica dos conmutadores cada vez, puede representar cuatro números (del 0 al 3), o bien
ejecutar en cada ciclo una de las cuatro operaciones, una para cada uno de los siguientes modelos
de conmutador: OFF-OFF (0), OFF-ON (1), ON-OFF (2) u ON-ON (3).
En general, los ordenadores de la década de 1970 eran capaces de verificar 8 conmutadores
simultáneamente; es decir, podían verificar ocho dígitos binarios, de ahí el término bit de datos
en cada ciclo. Un grupo de ocho bits se denomina byte y cada uno contiene 256 configuraciones
posibles de ON y OFF (o 1 y 0). Cada configuración equivale a una instrucción, a una parte de una
instrucción o a un determinado tipo de dato; estos últimos pueden ser un número, un carácter o
un símbolo gráfico. Por ejemplo, la configuración 11010010 puede representar datos binarios, en
este caso el número decimal 210 (véase Sistemas numéricos), o bien estar indicando al ordenador
que compare los datos almacenados en estos conmutadores con los datos almacenados en
determinada ubicación del chip de memoria. El desarrollo de procesadores capaces de manejar
simultáneamente 16, 32 y 64 bits de datos permitió
1 incrementar la velocidad de los ordenadores.
3
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
La colección completa de configuraciones reconocibles, es decir, la lista total de operaciones que
una computadora es capaz de procesar, se denomina conjunto, o repertorio, de instrucciones.
Ambos factores, el número de bits simultáneos y el tamaño de los conjuntos de instrucciones,
continúa incrementándose a medida que avanza el desarrollo de los ordenadores digitales
modernos.
3
HISTORIA
La primera máquina de calcular mecánica, un precursor del ordenador digital, fue inventada en
1642 por el matemático francés Blaise Pascal. Aquel dispositivo utilizaba una serie de ruedas de
diez dientes en las que cada uno de los dientes representaba un dígito del 0 al 9. Las ruedas
estaban conectadas de tal manera que podían sumarse números haciéndolas avanzar el número
de dientes correcto. En 1670 el filósofo y matemático alemán Gottfried Wilhelm Leibniz
perfeccionó esta máquina e inventó una que también podía multiplicar.
El inventor francés Joseph Marie Jacquard, al diseñar un telar automático, utilizó delgadas placas
de madera perforadas para controlar el tejido utilizado en los diseños complejos. Durante la
década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar
tarjetas perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió
compilar la información estadística destinada al censo de población de 1890 de Estados Unidos
mediante la utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos
eléctricos.
3.1
La máquina analítica
También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró los principios
de la computadora digital moderna. Inventó una serie de máquinas, como la máquina diferencial,
diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores consideran a
Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del poeta
inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La
tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero
una de sus invenciones, la máquina analítica, ya tenía muchas de las características de un
ordenador moderno. Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas
perforadas, una memoria para guardar los datos, un procesador para las operaciones
matemáticas y una impresora para hacer permanente el registro.
1
4
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
3.2
Primeros ordenadores
Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los primeros
modelos realizaban los cálculos mediante ejes y engranajes giratorios. Con estas máquinas se
evaluaban las aproximaciones numéricas de ecuaciones demasiado difíciles como para poder ser
resueltas mediante otros métodos. Durante las dos guerras mundiales se utilizaron sistemas
informáticos analógicos, primero mecánicos y más tarde eléctricos, para predecir la trayectoria de
los torpedos en los submarinos y para el manejo a distancia de las bombas en la aviación.
3.3
Ordenadores electrónicos
Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que trabajaban
en Bletchley Park, al norte de Londres, crearon lo que se consideró el primer ordenador digital
totalmente electrónico: el Colossus. Hacia diciembre de 1943 el Colossus, que incorporaba 1.500
válvulas o tubos de vacío, era ya operativo. Fue utilizado por el equipo dirigido por Alan Turing
para descodificar los mensajes de radio cifrados de los alemanes. En 1939 y con independencia de
este proyecto, John Atanasoff y Clifford Berry ya habían construido un prototipo de máquina
electrónica en el Iowa State College (EEUU). Este prototipo y las investigaciones posteriores se
realizaron en el anonimato, y más tarde quedaron eclipsadas por el desarrollo del Calculador e
integrador numérico electrónico (en inglés ENIAC, Electronic Numerical Integrator and Computer)
en 1946. El ENIAC, que según se demostró se basaba en gran medida en el ordenador AtanasoffBerry (en inglés ABC, Atanasoff-Berry Computer), obtuvo una patente que caducó en 1973, varias
décadas más tarde.
El ENIAC contenía 18.000 válvulas de vacío y tenía una velocidad de varios cientos de
multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía ser
modificado manualmente. Se construyó un sucesor del ENIAC con un almacenamiento de
programa que estaba basado en los conceptos del matemático húngaro-estadounidense John von
Neumann. Las instrucciones se almacenaban dentro de una llamada memoria, lo que liberaba al
ordenador de las limitaciones de velocidad del lector de cinta de papel durante la ejecución y
permitía resolver problemas sin necesidad de volver a conectarse al ordenador.
A finales de la década de 1950 el uso del transistor en los ordenadores marcó el advenimiento de
elementos lógicos más pequeños, rápidos y versátiles de lo que permitían las máquinas con
válvulas. Como los transistores utilizan mucha menos energía y tienen una vida útil más
prolongada, a su desarrollo se debió el nacimiento de máquinas más perfeccionadas, que fueron
llamadas ordenadores o computadoras de segunda
1 generación. Los componentes se hicieron más
5
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
pequeños, así como los espacios entre ellos, por lo que la fabricación del sistema resultaba más
barata.
3.4
Circuitos integrados
A finales de la década de 1960 apareció el circuito integrado (CI), que posibilitó la fabricación de
varios transistores en un único sustrato de silicio en el que los cables de interconexión iban
soldados. El circuito integrado permitió una posterior reducción del precio, el tamaño y los
porcentajes de error. El microprocesador se convirtió en una realidad a mediados de la década de
1970, con la introducción del circuito de integración a gran escala (LSI, acrónimo de Large Scale
Integrated) y, más tarde, con el circuito de integración a mayor escala (VLSI, acrónimo de Very
Large Scale Integrated), con varios miles de transistores interconectados soldados sobre un único
sustrato de silicio.
4 HARDWARE
Todos los ordenadores digitales modernos son similares conceptualmente con independencia de
su tamaño. Sin embargo, pueden dividirse en varias categorías según su precio y rendimiento: el
ordenador o computadora personal es una máquina de coste relativamente bajo y por lo general
de tamaño adecuado para un escritorio (algunos de ellos, denominados portátiles, o laptops, son
lo bastante pequeños como para caber en un maletín); la estación de trabajo, un microordenador
con gráficos mejorados y capacidades de comunicaciones que lo hacen especialmente útil para el
trabajo de oficina; el miniordenador o minicomputadora, un ordenador de mayor tamaño que por
lo general es demasiado caro para el uso personal y que es apto para compañías, universidades o
laboratorios; y el mainframe, una gran máquina de alto precio capaz de servir a las necesidades
de grandes empresas, departamentos gubernamentales, instituciones de investigación científica y
similares (las máquinas más grandes y más rápidas dentro de esta categoría se denominan
superordenadores).
En realidad, un ordenador digital no es una única máquina, en el sentido en el que la mayoría de
la gente considera a los ordenadores. Es un sistema compuesto de cinco elementos diferenciados:
una CPU (unidad central de proceso); dispositivos de entrada; dispositivos de almacenamiento de
memoria; dispositivos de salida y una red de comunicaciones, denominada bus, que enlaza todos
los elementos del sistema y conecta a éste con el mundo exterior.
1
6
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
4.1
CPU (unidad central de proceso)
La CPU puede ser un único chip o una serie de chips que realizan cálculos aritméticos y lógicos y
que temporizan y controlan las operaciones de los demás elementos del sistema. Las técnicas de
miniaturización y de integración han posibilitado el desarrollo de un chip de CPU denominado
microprocesador, que incorpora un sistema de circuitos y memoria adicionales. El resultado son
unos ordenadores más pequeños y la reducción del sistema de circuitos de soporte. Los
microprocesadores se utilizan en la mayoría de los ordenadores personales de la actualidad.
La mayoría de los chips de CPU y de los microprocesadores están compuestos de cuatro secciones
funcionales: una unidad aritmética/lógica; unos registros; una sección de control y un bus interno.
La unidad aritmética/lógica proporciona al chip su capacidad de cálculo y permite la realización de
operaciones aritméticas y lógicas. Los registros son áreas de almacenamiento temporal que
contienen datos, realizan un seguimiento de las instrucciones y conservan la ubicación y los
resultados de dichas operaciones. La sección de control tiene tres tareas principales: temporiza y
regula las operaciones de la totalidad del sistema informático; su descodificador de instrucciones
lee las configuraciones de datos en un registro designado y las convierte en una actividad, como
podría ser sumar o comparar, y su unidad interruptora indica en qué orden utilizará la CPU las
operaciones individuales y regula la cantidad de tiempo de CPU que podrá consumir cada
operación.
El último segmento de un chip de CPU o microprocesador es su bus interno, una red de líneas de
comunicación que conecta los elementos internos del procesador y que también lleva hacia los
conectores externos que enlazan al procesador con los demás elementos del sistema informático.
Los tres tipos de bus de la CPU son: el bus de control que consiste en una línea que detecta las
señales de entrada y de otra línea que genera señales de control desde el interior de la CPU; el
bus de dirección, una línea unidireccional que sale desde el procesador y que gestiona la
ubicación de los datos en las direcciones de la memoria; y el bus de datos, una línea de
transmisión bidireccional que lee los datos de la memoria y escribe nuevos datos en ésta.
4.2
Dispositivos de entrada
Estos dispositivos permiten al usuario del ordenador introducir datos, comandos y programas en
la CPU. El dispositivo de entrada más común es un teclado similar al de las máquinas de escribir.
La información introducida con el mismo, es transformada por el ordenador en modelos
reconocibles. Otros dispositivos de entrada son los lápices ópticos, que transmiten información
gráfica desde tabletas electrónicas hasta el ordenador;
joysticks y el ratón o mouse, que convierte
1
7
el movimiento físico en movimiento dentro de una pantalla de ordenador; los escáneres
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
luminosos, que leen palabras o símbolos de una página impresa y los traducen a configuraciones
electrónicas que el ordenador puede manipular y almacenar; y los módulos de reconocimiento de
voz, que convierten la palabra hablada en señales digitales comprensibles para el ordenador.
También es posible utilizar los dispositivos de almacenamiento para introducir datos en la unidad
de proceso.
4.3
Dispositivos de almacenamiento
Los sistemas informáticos pueden almacenar los datos tanto interna (en la memoria) como
externamente (en los dispositivos de almacenamiento). Internamente, las instrucciones o datos
pueden almacenarse por un tiempo en los chips de silicio de la RAM (memoria de acceso
aleatorio) montados directamente en la placa de circuitos principal de la computadora, o bien en
chips montados en tarjetas periféricas conectadas a la placa de circuitos principal del ordenador.
Estos chips de RAM constan de conmutadores sensibles a los cambios de la corriente eléctrica.
Los chips de RAM estática conservan sus bits de datos mientras la corriente siga fluyendo a través
del circuito, mientras que los chips de RAM dinámica (DRAM, acrónimo de Dynamic Random
Access Memory) necesitan la aplicación de tensiones altas o bajas a intervalos regulares
aproximadamente cada dos milisegundos para no perder su información.
Otro tipo de memoria interna son los chips de silicio en los que ya están instalados todos los
conmutadores. Las configuraciones en este tipo de chips de ROM (memoria de sólo lectura)
forman los comandos, los datos o los programas que el ordenador necesita para funcionar
correctamente. Los chips de RAM son como pedazos de papel en los que se puede escribir, borrar
y volver a utilizar; los chips de ROM son como un libro, con las palabras ya escritas en cada
página. Tanto los primeros como los segundos están enlazados a la CPU a través de circuitos.
Los dispositivos de almacenamiento externos, que pueden residir físicamente dentro de la unidad
de proceso principal del ordenador, están fuera de la placa de circuitos principal. Estos
dispositivos almacenan los datos en forma de cargas sobre un medio magnéticamente sensible,
por ejemplo una cinta de sonido o, lo que es más común, sobre un disco revestido de una fina
capa de partículas metálicas. Los dispositivos de almacenamiento externo más frecuentes son los
disquetes y los discos duros, aunque la mayoría de los grandes sistemas informáticos utiliza
bancos de unidades de almacenamiento en cinta magnética. Los discos flexibles pueden contener,
según sea el sistema, desde varios centenares de miles de bytes hasta bastante más de un millón
de bytes de datos.
1
8
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Los discos duros no pueden extraerse de los receptáculos de la unidad de disco, que contienen los
dispositivos electrónicos para leer y escribir datos sobre la superficie magnética de los discos y
pueden almacenar miles de millones de bytes. La tecnología de CD-ROM, que emplea las mismas
técnicas láser utilizadas para crear los discos compactos (CD) de audio, permiten capacidades de
almacenamiento del orden de varios cientos de megabytes (millones de bytes) de datos.
4.4
Dispositivos de salida
Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones
de datos de la computadora. El dispositivo de salida más común es la unidad de visualización
(VDU, acrónimo de Video Display Unit), que consiste en un monitor que presenta los caracteres y
gráficos en una pantalla similar a la del televisor. Por lo general, las VDU tienen un tubo de rayos
catódicos como el de cualquier televisor, aunque los ordenadores pequeños y portátiles utilizan
hoy pantallas de cristal líquido (LCD, acrónimo de Liquid Crystal Displays) o electroluminiscentes.
Otros dispositivos de salida más comunes son la impresora y el módem. Un módem enlaza dos
ordenadores transformando las señales digitales en analógicas para que los datos puedan
transmitirse a través de las telecomunicaciones.
4.5
Sistemas operativos
Los sistemas operativos internos fueron desarrollados sobre todo para coordinar y trasladar estos
flujos de datos que procedían de fuentes distintas, como las unidades de disco o los
coprocesadores (chips de procesamiento que ejecutan operaciones simultáneamente con la
unidad central, aunque son diferentes). Un sistema operativo es un programa de control principal,
almacenado de forma permanente en la memoria, que interpreta los comandos del usuario que
solicita diversos tipos de servicios, como visualización, impresión o copia de un archivo de datos;
presenta una lista de todos los archivos existentes en un directorio o ejecuta un determinado
programa.
5 PROGRAMACIÓN
Un programa es una secuencia de instrucciones que indican al hardware de un ordenador qué
operaciones debe realizar con los datos. Los programas pueden estar incorporados al propio
hardware, o bien pueden existir de manera independiente en forma de software. En algunas
computadoras especializadas las instrucciones operativas están incorporadas en el sistema de
circuitos; entre los ejemplos más comunes pueden citarse los microordenadores de las
1
calculadoras, relojes de pulsera, motores de coches
y hornos microondas. Por otro lado, un
9
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
ordenador universal, o de uso general, contiene algunos programas incorporados (en la ROM) o
instrucciones (en el chip del procesador), pero depende de programas externos para ejecutar
tareas útiles. Una vez programado, podrá hacer tanto o tan poco como le permita el software que
lo controla en determinado momento. El software de uso más generalizado incluye una amplia
variedad de programas de aplicaciones, es decir, instrucciones al ordenador acerca de cómo
realizar diversas tareas.
5.1
Lenguajes
Las instrucciones deben darse en un lenguaje de programación, es decir, en una determinada
configuración de información digital binaria. En las primeras computadoras, la programación era
una tarea difícil y laboriosa ya que los conmutadores ON-OFF de las válvulas de vacío debían
configurarse a mano. Programar tareas tan sencillas como ordenar una lista de nombres requería
varios días de trabajo de equipos de programadores. Desde entonces se han inventado varios
lenguajes informáticos, algunos orientados hacia funciones específicas y otros centrados en la
facilidad de uso.
5.2
Lenguaje máquina
El lenguaje propio del ordenador, basado en el sistema binario, o código máquina, resulta difícil
de utilizar para las personas. El programador debe introducir todos y cada uno de los comandos y
datos en forma binaria, y una operación sencilla como comparar el contenido de un registro con
los datos situados en una ubicación del chip de memoria puede tener el siguiente formato:
11001010 00010111 11110101 00101011. La programación en lenguaje máquina es una tarea tan
tediosa y consume tanto tiempo que muy raras veces lo que se ahorra en la ejecución del
programa justifica los días o semanas que se han necesitado para escribir el mismo.
5.3
Lenguaje ensamblador
Uno de los métodos inventados por los programadores para reducir y simplificar el proceso es la
denominada programación con lenguaje ensamblador. Al asignar un código mnemotécnico (por lo
general de tres letras) a cada comando en lenguaje máquina, es posible escribir y depurar o
eliminar los errores lógicos y de datos en los programas escritos en lenguaje ensamblador,
empleando para ello sólo una fracción del tiempo necesario para programar en lenguaje máquina.
En el lenguaje ensamblador, cada comando mnemotécnico y sus operadores simbólicos equivalen
a una instrucción de máquina. Un programa ensamblador traduce el código fuente, una lista de
códigos de operación mnemotécnicos y de operadores simbólicos, a código objeto (es decir, a
lenguaje máquina) y, a continuación, ejecuta el programa.
2
0
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Sin embargo, el lenguaje ensamblador puede utilizarse con un solo tipo de chip de CPU o
microprocesador. Los programadores, que dedicaron tanto tiempo y esfuerzo al aprendizaje de la
programación de un ordenador, se veían obligados a aprender un nuevo estilo de programación
cada vez que trabajaban con otra máquina. Lo que se necesitaba era un método abreviado en el
que un enunciado simbólico pudiera representar una secuencia de numerosas instrucciones en
lenguaje máquina, y un método que permitiera que el mismo programa pudiera ejecutarse en
varios tipos de máquinas. Estas necesidades llevaron al desarrollo de lenguajes de alto nivel.
5.4
Lenguajes de alto nivel
Los lenguajes de alto nivel suelen utilizar términos ingleses del tipo LIST, PRINT u OPEN como
comandos que representan una secuencia de decenas o de centenas de instrucciones en lenguaje
máquina. Los comandos se introducen desde el teclado, desde un programa residente en la
memoria o desde un dispositivo de almacenamiento, y son interceptados por un programa que
los traduce a instrucciones en lenguaje máquina.
Los programas traductores son de dos tipos: intérpretes y compiladores. Con un intérprete, los
programas que repiten un ciclo para volver a ejecutar parte de sus instrucciones, reinterpretan la
misma instrucción cada vez que aparece. Por consiguiente, los programas interpretados se
ejecutan con mucha mayor lentitud que los programas en lenguaje máquina. Por el contrario, los
compiladores traducen un programa íntegro a lenguaje máquina antes de su ejecución, por lo
cual se ejecutan con tanta rapidez como si hubiesen sido escritos directamente en lenguaje
máquina.
Se considera que fue la estadounidense Grace Hopper quien implementó el primer lenguaje de
ordenador orientado al uso comercial. Después de programar un ordenador experimental en la
Universidad de Harvard, trabajó en los modelos UNIVAC I y UNIVAC II, desarrollando un lenguaje
de alto nivel para uso comercial llamado FLOW-MATIC. Para facilitar el uso del ordenador en las
aplicaciones científicas, IBM desarrolló un lenguaje que simplificaría el trabajo que implicaba el
tratamiento de fórmulas matemáticas complejas. Iniciado en 1954 y terminado en 1957, el
FORTRAN (acrónimo de Formula Translator) fue el primer lenguaje exhaustivo de alto nivel de uso
generalizado.
En 1957 una asociación estadounidense, la Association for Computing Machinery comenzó a
desarrollar un lenguaje universal que corrigiera algunos de los defectos del FORTRAN. Un año más
tarde fue lanzado el ALGOL (acrónimo de Algorithmic Language), otro lenguaje de orientación
científica. De gran difusión en Europa durante 2las décadas de 1960 y 1970, desde entonces ha
1
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
sido sustituido por nuevos lenguajes, mientras que el FORTRAN continúa siendo utilizado debido a
las gigantescas inversiones que se hicieron en los programas existentes.
El COBOL (acrónimo de Common Business Oriented Language) es un lenguaje de programación
para uso comercial y empresarial especializado en la organización de datos y manipulación de
archivos, y hoy día está muy difundido en el mundo empresarial.
El lenguaje BASIC (acrónimo de Código de Instrucciones Simbólicas de Uso General para
Principiantes) fue desarrollado en el Dartmouth College a principios de la década de 1960 y está
dirigido a los usuarios de ordenador no profesionales. Este lenguaje se universalizó gracias a la
popularización de los microordenadores en las décadas de 1970 y 1980. Calificado de lento,
ineficaz y poco estético por sus detractores, BASIC es sencillo de aprender y fácil de utilizar. Como
muchos de los primeros microordenadores se vendieron con BASIC incorporado en el hardware
(en la memoria ROM), se generalizó el uso de este lenguaje.
Aunque existen centenares de lenguajes informáticos y de variantes, hay algunos dignos de
mención, como el PASCAL, diseñado en un principio como herramienta de enseñanza, hoy es uno
de los lenguajes de microordenador más populares; el Logo fue desarrollado para que los niños
pudieran acceder al mundo de la informática; el C, un lenguaje de Bell Laboratories diseñado en la
década de 1970, se utiliza ampliamente en el desarrollo de programas de sistemas, al igual que su
sucesor, el C++. El LISP y el PROLOG han alcanzado amplia difusión en el campo de la inteligencia
artificial.
EVOLUCIÓN FUTURA
Una tendencia constante en el desarrollo de los ordenadores es la microminiaturización, iniciativa
que tiende a comprimir más elementos de circuitos en un espacio de chip cada vez más pequeño.
Además, los investigadores intentan agilizar el funcionamiento de los circuitos mediante el uso de
la superconductividad, un fenómeno de disminución de la resistencia eléctrica que se observa
cuando se enfrían los objetos a temperaturas muy bajas.
Las redes informáticas se han vuelto cada vez más importantes en el desarrollo de la tecnología
de computadoras. Las redes son grupos de computadoras interconectados mediante sistemas de
comunicación. La red pública Internet es un ejemplo de red informática planetaria. Las redes
permiten que las computadoras conectadas intercambien rápidamente información y, en algunos
2 muchas computadoras pueden cooperar en la
casos, compartan una carga de trabajo, con lo que
2
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
realización de una tarea. Se están desarrollando nuevas tecnologías de equipo físico y soporte
lógico que acelerarán los dos procesos mencionados.
Otra tendencia en el desarrollo de computadoras es el
esfuerzo para crear computadoras de quinta generación,
capaces de resolver problemas complejos en formas que
pudieran llegar a considerarse creativas. Una vía que se
está explorando activamente es el ordenador de proceso
paralelo, que emplea muchos chips para realizar varias
tareas diferentes al mismo tiempo. El proceso paralelo
podría llegar a reproducir hasta cierto punto las
complejas funciones de realimentación, aproximación y
evaluación que caracterizan al pensamiento humano.
Otra forma de proceso paralelo que se está investigando
es el uso de computadoras moleculares. En estas
computadoras, los símbolos lógicos se expresan por
unidades químicas de ADN en vez de por el flujo de electrones habitual en las computadoras
corrientes. Las computadoras moleculares podrían llegar a resolver problemas complicados
mucho más rápidamente que las actuales supercomputadoras y consumir mucha menos energía.
2
3
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
La supercomputadora Cray-1 (diseñada por Seymour Cray de Cray
Research, de Eagan, Minnesota, EEUU) fue la primera capaz de
ejecutar más de 100 millones de operaciones de coma flotante
por segundo. Entre los numerosos problemas tecnológicos que
hubo que resolver, uno de los más importantes fue eliminar el
calor generado por la alta velocidad de las operaciones lógicas.
Esto se consiguió montando los circuitos sobre placas verticales
enfriadas mediante un sistema basado en gas freón. Aunque en la
actualidad ya se han construido máquinas más rápidas, la Cray-1
sigue utilizándose para estudios matemáticos de problemas muy
complejos, como por ejemplo el análisis del habla, la previsión
climatológica e interrogantes básicos en física y química. Además,
la Cray-1 se utiliza como unidad de medida informal para las
supercomputadoras más nuevas, algunas de las cuales se
proyectan ahora para ser equivalentes a 1.000 crays.
Máquina diferencial de Babbage
Considerada por muchos como predecesora directa de los
modernos dispositivos de cálculo, la máquina diferencial era capaz
de calcular tablas matemáticas. Este corte transversal muestra una
pequeña parte de la ingeniosa máquina diseñada por el
matemático británico Charles Babbage en la década de 1820. La
máquina analítica, ideada también por Babbage, habría sido una
auténtica computadora programable si hubiera contado con la
financiación adecuada. Las circunstancias quisieron que ninguna de
las máquinas pudieran construirse durante su vida, aunque esta
posibilidad estaba dentro de la capacidad tecnológica de la época.
En 1991, un equipo del Museo de las Ciencias de Londres consiguió
construir una máquina diferencial Nº 2 totalmente operativa,
siguiendo los dibujos y especificaciones de Babbage.
2
4
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
La imagen ampliada de la
placa de circuitos de un
detector de humo muestra
sus componentes, entre los
que se incluyen transistores,
reóstatos,
condensadores,
diodos y bobinas. Los
transistores que permiten el
funcionamiento del circuito
están encerrados en unos
contenedores
redondos
plateados.
Los transistores pueden
efectuar diversas funciones,
sirviendo, por ejemplo, de
amplificadores, interruptores y osciladores. Cada transistor consta de un pequeño trozo de silicio
al que se le han aplicado átomos de impurezas para crear semiconductores de tipo n y de tipo p.
Inventados en 1948, los transistores son un componente fundamental en casi todos los
dispositivos electrónicos modernos.
La primera computadora electrónica comercial, la UNIVAC I, fue también la primera
capaz de procesar información numérica y textual. Diseñada por J. Presper Eckeret y John
Mauchly, cuya empresa se integró posteriormente en Remington Rand, la máquina marcó
el inicio de la era informática. En la
ilustración vemos una UNIVAC. La
computadora central está al fondo, y
en primer plano puede verse al panel
de
control
de
supervisión.
Remington Rand entregó su primera
UNIVAC a la Oficina del Censo de
Estados Unidos en 1951.
2
5
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
El ENIAC (siglas en inglés de "calculador e integrador numérico electrónico") fue el primer
ordenador
digital
totalmente
electrónico.
Construido en la
Universidad
de
Pensilvania en 1946,
siguió
funcionando
hasta 1955. El ENIAC
contenía
18.000
válvulas de vacío, y
para
programarlo
había que cambiar
manualmente
el
cableado.
Los circuitos integrados han hecho posible la
fabricación
del
microordenador
o
microcomputadora. Sin ellos, los circuitos
individuales y sus componentes ocuparían
demasiado espacio como para poder
conseguir un diseño compacto. También
llamado chip, un circuito integrado típico
consta de varios elementos como reóstatos,
condensadores y transistores integrados en
una única pieza de silicio. En los más
pequeños, los elementos del circuito pueden
tener un tamaño de apenas unos centenares
de átomos, lo que ha permitido crear
sofisticadas computadoras del tamaño de un
cuaderno. Una placa de circuitos de una
computadora típica incluye numerosos
circuitos integrados interconectados entre sí.
2
6
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
La invención del microchip
permitió reducir el tamaño
de
los
ordenadores,
primero lo suficiente para
colocarlos encima de la
mesa, y más tarde para
llevarlos en la mano. Los
dispositivos de mano más
completos disponen de
varios
megabytes
(millones de caracteres) de
espacio para almacenar
archivos,
enorme
capacidad de cálculo, con
utilidades de hoja de
cálculo y gráficos, y los
medios necesarios para
enviar y recibir correo electrónico y recorrer Internet. En la fotografía se utiliza un pequeño
ordenador para reprogramar el sistema electrónico de control de una moderna motocicleta
Un
ordenador
o
computadora personal
(PC)
cuenta
con
dispositivos
para
visualizar la información
(monitor e impresora
láser), para introducir
datos (teclado y ratón o
mouse), para recoger y
almacenar
la
información (unidades
de disco y CD-ROM) y
para comunicarse con
otros
ordenadores
(módem).
2
7
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Un sistema informático suele estar compuesto por una unidad central de proceso (CPU),
dispositivos de entrada, dispositivos de almacenamiento y dispositivos de salida. La CPU incluye
una unidad aritmético-lógica (ALU), registros, sección de control y bus lógico. La unidad
aritmético-lógica efectúa las operaciones aritméticas y lógicas. Los registros almacenan los datos y
los resultados de las operaciones. La unidad de control regula y controla diversas operaciones. El
bus interno conecta las unidades de la CPU entre sí y con los componentes externos del sistema.
En la mayoría de las computadoras, el principal dispositivo de entrada es el teclado. Dispositivos
de almacenamiento son los discos duros, flexibles (disquetes) y compactos (CD). Dispositivos de
salida que permiten ver los datos son los monitores e impresoras.
Los lápices ópticos son punteros electrónicos que permiten al
usuario modificar los diseños en pantalla. Este puntero, que se
sostiene en la mano, contiene sensores que envían señales a la
computadora cada vez que se registra luz. La pantalla de la
computadora no se enciende entera, sino fila por fila 60 veces por
segundo, mediante un haz de electrones. Por ello, la computadora
puede determinar la posición del lápiz cada vez que detecta el haz de
electrones. Los lápices ópticos suelen utilizarse en la tecnología
CAD/CAM (diseño y fabricación asistidos por computadora) debido a
su gran flexibilidad. Aquí vemos a un diseñador utilizando un lápiz
óptico para modificar un plano en una pantalla de computadora.
2
8
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
El CD-ROM es un estándar de almacenamiento de archivos
informáticos en disco compacto que se caracteriza por ser de
sólo lectura. En la fotografía, un CDROM se inserta en un lector de CDROM.
Grace Hopper
Pionera en el procesamiento de datos, a la matemática estadounidense Grace Hopper se le
atribuye la creación del primer compilador en 1952. Hopper ayudó a desarrollar dos lenguajes
informáticos, así como a convertir los ordenadores o computadoras en un elemento atractivo
para el mundo de la empresa.
Mainframe, un ordenador
o computadora de gran
capacidad, diseñado para
realizar
tareas
computacionales
muy
intensas.
Las
computadoras de tipo
mainframe proporcionan
acceso a una gran
cantidad de usuarios
simultáneamente
—
pueden ser hasta varios
millares—, conectados al
sistema a través de
terminales.
Se
diferencian
de
los
superordenadores en que,
mientras éstos pueden
ejecutar un programa de
gran potencia de cálculo
de forma más rápida, los mainframes pueden ejecutar varios programas de manera
simultánea y con un gran número de usuarios.2
9
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
Los primeros mainframes aparecieron entre 1964 y 1972; eran los denominados
computadores de tercera generación, en cuya base estaban los primeros circuitos
integrados. IBM y Unisys son las empresas con mayor tasa de producción de mainframes;
en el mundo de la banca y de contabilidad de grandes empresas, se han utilizado mucho los
mainframes de la serie 360 de IBM y más recientemente los de la serie 390 y los denomi
nados “zSerie eServers”.
En esta fotografía se muestra una sala de ordenadores típica de las grandes computadoras de tipo
"mainframe" empleadas en las décadas de 1970 y 1980.
Lenguajes de programación
LENGUAJE ORIGEN DEL NOMBRE AÑO USOS/COMENTARIOS
ADA
Augusta ADA Byron
(Lady Lovelace)
1979 Derivado de Pascal, utilizado principalmente por los
militares.
ALGOL
ALGOrithmic Language
(Lenguaje ALGOL algorítmico)
1960 Primer lenguaje de programación procedural estructurado,
utilizado sobre todo para resolver problemas matemáticos.
APL
A Programming Language
1961 Lenguaje interpretado que utiliza un amplio conjunto de
(Un lenguaje de programación)
símbolos especiales y que se caracteriza por su brevedad.
Utilizado fundamentalmente por los matemáticos.
BASIC
Beginners All-Purpose Symbolic 1965 Lenguaje de programación de alto nivel, utilizado con
Instruction Code(Código de
frecuencia por programadores principiantes.
instrucciones simbólicas
multipropósito para
principiantes)
C
Predecesor del lenguaje de
programación B, fue
desarrollado en Bell
Laboratory, en 1972
1972 Lenguaje de programación compilado y estructurado, que
suele utilizarse en numerosos lugares de trabajo porque sus
programas pueden transferirse fácilmente entre distintos
tipos de computadoras.
COBOL
COmmon Business-Oriented
Language (Lenguaje simbólico
de programación orientado a
aplicaciones comerciales)
1959 Lenguaje de programación semejante al idioma inglés, que
hace hincapié en las estructuras de datos. De amplia
utilización, principalmente en empresas.
FORTH
Lenguaje de cuarta
(FOuRTH) generación
1970 Lenguaje estructurado e interpretado de fácil ampliación.
Ofrece una alta funcionalidad en un espacio reducido.
FORTRAN FORmula TRANslation
(Traducción de fórmulas)
1954 Diseñado en un principio para usos científicos y de
ingeniería, se trata de un lenguaje compilado de alto nivel
que hoy se utiliza en numerosos campos. Precursor de
3 conceptos, como las variables, las instrucciones
diversos
0
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
condicionales y las subrutinas compiladas por separado.
LISP
LISt Processing
(Procesamiento de listas)
1960 Lenguaje de programación orientado a la generación de
listas, utilizado principalmente para manipular listas de
datos. Lenguaje interpretado que suele utilizarse en las
investigaciones y está considerado como el lenguaje
estándar en proyectos de inteligencia artificial.
LOGO
Derivado del griego logos,
'palabra'.
1968 Lenguaje de programación que suele utilizarse con niños.
Presenta un sencillo entorno de dibujo y varias prestaciones
de mayor nivel del lenguaje LISP. Fundamentalmente
educativo.
Modula-2 MODUlar LAnguage-2, diseñado 1980 Lenguaje que hace hincapié en la programación modular. Es
como fase secundaria de Pascal
un lenguaje de alto nivel basado en Pascal, que se
(diseñados ambos por Niklaus
caracteriza por la ausencia de funciones y procedimientos
Wirth)
estandarizados.
Pascal
Blaise PASCAL, matemático e 1971 Lenguaje compilado y estructurado basado en ALGOL.
inventor del primer dispositivo
Agrega tipos y estructuras de datos simplificando la sintaxis.
de computación.
Al igual que el C, se trata de un lenguaje de programación
estándar para microcomputadoras.
PILOT
Programmed Inquiry, Language 1969 Lenguaje de programación utilizado fundamentalmente para
Or Teaching
crear aplicaciones destinadas a instrucciones asistidas por
(Consulta, lenguaje o
computadora. Se caracteriza por utilizar un mínimo de
aprendizaje de investigación
sintaxis.
programada)
PL/1
Programming Language 1
(Lenguaje de programación
uno)
Los microprocesadores
suelen estar recubiertos
por una carcasa de
protección. Los
conductores que
sobresalen del
procesador mostrado en
la fotografía se conectan
a unas pequeñas patillas
metálicas que se sueldan
1964 Diseñado para combinar las principales virtudes del
FORTRAN, COBOL y ALGOL, se trata de un lenguaje de
programación complejo. Compilado y estructurado, es capaz
de gestionar errores y de procesar multitareas, y se emplea
en entornos académicos y de investigación.
3
1
UNIVERSIDAD NACIONAL DE INGENIERÍA
UNI RUACS ESTELI
a las placas de circuito integrado
Este circuito integrado, un microprocesador F100, tiene sólo 0,6 cm2, y es lo bastante
pequeño para pasar por el ojo de una aguja.
Superconductividad, fenómeno que presentan
algunos conductores que no ofrecen resistencia
al flujo de corriente eléctrica
Nitrógeno líquido
Ciertos materiales cerámicos se vuelven
superconductores a temperaturas que permiten
utilizar nitrógeno líquido (en la fotografía) como
refrigerante. El nitrógeno líquido se obtiene por licuación del aire y puede almacenarse durante
periodos prolongados en recipientes especiales denominados termos o frascos Dewar
3
2