aspectos basicos de la computacion

43
Aspectos Básico de la Computación Cesar Ricardo Cervantes Zamora Sección 08 Matricula: 1359731A 15/02/2015

Upload: cesar-ricardo-cervantes-zamora

Post on 18-Nov-2015

15 views

Category:

Documents


0 download

DESCRIPTION

Trabajo de Programacion

TRANSCRIPT

Aspectos Bsico de la Computacin

Aspectos Bsico de la ComputacinCesar Ricardo Cervantes Zamora

Seccin 08 Matricula: 1359731A

15/02/2015

Indice.-

1.-Introduccion3

2.-Definicion.4

3.-Historia..5 3.1.-Maquinas Mecanicas.5 3.2.-Nacimiento de las Computadoras Electronicas.6 3.3.-Generaciones de Computadoras..74.Componentes..8 4.1.-Computadora8 4.2.-Dispositivos de Entrada/Salida.. . ..8 4.3.-La memoria central (interna).-9 4.3.1.- Organizacin de la Memoria..9 4.3.2.-Tipos de memoria principal.10 4.4.-La Unidad Central de Proceso (UCP)11 4.5.-Memoria externa (almacenamiento masivo)11

5.-Lenguajes12 5.1.-Instrucciones ala computadora12 5.2.-Lenguajes Maquina..13 5.3.-Lenguajes de Bajo Nivel14 5.4.-Lenguajes de Alto Nivel.15 5.5.-Traductores de Lenguajes16 5.5.1.-Compiladores..16 5.5.2.- Interpretes19 5.6.-Historia de los Lenguajes de Programacion..19 5.6.1.-El lenguaje C: historia y caractersticas ..20 5.6.2.-Una breve historia de C++..21 5.6.3.-Breve historia de Java226.-Logros (Aplicaciones).-..24 6.1-Microprocesador..25 6.2.-Alunizaje25 6.3.-Satlites de Aplicacin...25 6.4.-Diseo y Fabricacin Asistidos por Computadoras25 6.5.-Jumbo Jet26 6.6.-Materiales Compuestos Avanzados26 6.7.-Tomografa Axial Computarizada...26 6.8.-Ingeniera Genetica.27 6.9.-Laseres.27 6.10.-Fibras pticas..277.-Bibliografia....28

1.-INTRODUCCION.- En este documento podemos saber un poco ms de los aspectos de la computacin en general de su historia como fueron evolucionando las computadoras atreves de la necesidad de ms aplicaciones para la humanidad tambin podemos saber cules son sus componentes; como su memoria RAM entre otros, tambin abordaremos los lenguajes que se utilizan hoy en dia y por ultimo conoceremos uno de los logros que gracias a la computacin se han podido resolver y/o llevar a cabo por el bien de la humanidad.

2.-DEFINICION DE COMPUTACION.-Es la ciencia que estudia mtodos, procesos, tcnicas, con el fin de almacenar, procesar y transmitir informacin y datos en el formato digital.

3.-HISTORIA.-Para poder entender de manera general la historia de la computacin dividir en tres periodos y sus subdivisiones.

3.1.-Maquinas Mecnicas (antes de 1930). En el siglo XVII, Blaise Pascal, un matemtico y filsofo francs, invento la Pascalina, una calculadora mecnica para operaciones de suma y resta. En el siglo XX, cuando Niklaus Wirth invento un lenguaje de programacin estructurado, lo llamo Pascal en honor al inventor de la primer calculadora mecnica.

A finales el siglo XXVII, el matemtico alemn Gottfried Leibnitz invento una calculadora mecnica ms compleja que poda realizar operaciones de multiplicacin y divisin, as como la suma y resta. Se le llamo la Rueda de Leibnitz.

La primera mquina que uso la idea de almacenamiento y programacin fue el telar de Jacquard, inventando por Joseph-Marie Jacquard a principios del siglo XIX. El telar usaba tarjetas perforadoras (como un programa almacenado) para controlar el aumento de hilos en la fabricacin de textiles.

En 1823, Charles Babbage invento la Maquina Diferencial, la cual poda hacer ms que operaciones aritmticas simples; tambin poda resolver ecuaciones polinomiales. Posteriormente invento una Maquina Analtica que, en cierta medida, es paralela a la idea de las computadoras modernas. Tena cuatro componentes: un molino (ALU moderno), un almacn (memoria), un operador (unidad de control) y una salida (entrada/salida).

En 1890, Herman Hollerith, mientras trabajaba en la Oficina de Censos de Estados Unidos, diseo y construyo una maquina programadora que poda leer, contar y ordenar automticamente los datos almacenamiento en las tarjetas perforadas.

3.2.-Nacimiento de las Computadoras Electrnicas (1930-1950)Entra 1930 y 1950, algunos cientficos, que podran considerarse los pioneros de la industria de la computacin electrnica, inventaron varias computadoras.Primeras Computadoras Electrnicas.-Las primeras computadoras de este periodo no almacenaban el programa en memoria; todas se programaban externamente. Durante estos aos destacaron cinco computadoras: La primera computadora para propsito especial que codificaba informacin de manera elctrica fue inventada por John V. Atanasoff y su asistente Clifford Berry en 1939. Se le llamo ABC (Atanasoff Berry Computer) y se dise especficamente para resolver un sistema de ecuaciones lineales.

Al mismo tiempo, el matemtico alemn Konrad Zuse diseo una maquina se propsito general llamada Z1.

En la dcada de 1930, el ejercito estadounidense e IBM patrocinaron un proyecto en la Universidad de Harvard bajo la direccin de Howard Airen para construir una computadora enorme llamada Mark I. Esta computadora usaba componentes elctricos y mecnicos.

En Inglaterra. Alan Turing invento una computadora llamada Colossus diseada para descifrar el cdigo Enigma alemn.

La primera computadora de propsito general totalmente electrnica fue fabricada por John Mauchly y J. Presper Eckert y recibo el nombre de ENIAC (Electronic Numerical Integrator and Calculator: Calculadora e integral numrico electrnico). Se termin en 1946. Utilizaba 18000 tubos de vaco, media 100 pies de largo por 10 pie de alto y pesaba 30 toneladas.Computadoras basadas en el modelo de von Neumann.-Las cinco componentes precedentes utilizaron memoria solo para almacenar datos. Se programaron externamente usando cables o interruptores. John von Neumann propuso que el programa y los datos deberan almacenarse en la memoria. De esa manera, cada vez que usted utilizara una computadora para realizar una tarea nueva, solo necesitara cambiar el programa en lugar de volver a conectar los cables de la maquina o encender y apagar cientos de interruptores. La primera computadora basada en la idea de von Neumann se construy en 1950 en la Universidad de Pennsylvania y se llam EDVAC. Al mismo tiempo, Maurice Wilkes construy una computadora similar llamada EDSAC en Universidad de Cambridge en Inglaterra.

3.3.-Generaciones de Computadoras (1950-hoy dia)Las computadoras construidas despus de 1950 siguieron, ms o menos, a los modelos de von Neumann. Las computadoras se han vuelto ms rpidas, ms pequeas y ms baratas, pero el principio es casi el mismo. Los historiadores dividen este periodo en generaciones, con cada generacin presenciado un cambio importante en el hardware o el software(pero no en el modelo).Primera Generacin.-La primera generacin (aproximadamente de 1950 a 1959) se caracteriza por la aparicin de computadores comerciales. Durante este periodo, las computadoras eran utilizadas solo por profesionales. Estaban encerradas en habitaciones con acceso restringido nicamente al operador o a especialistas en computacin. Las computadoras eran voluminosas y usaban tubos de vaco como interruptores electrnicos. En esta poca las computadoras eran asequibles solo para las grandes organizaciones.Segundo Generacin.-Las computadoras de la segunda generacin (aproximadamente de 1959 a 1965) utilizaban transistores en el lugar de tubos de vaco. Esto redujo su tamao as como su costo y las puso al alcance de las empresas medianas y pequeas. Dos lenguajes de alto nivel, se inventaron y facilitaron la programacin. Estos dos lenguajes separaron la tarea de la programacin de la tarea de la operacin de la computadora. Un ingeniero civil poda escribir un programa en FORTRAN para resolver un problema sin involucrarse en detalles electrnicos de a arquitectura de la computadora. Tercera Generacin.-La invencin del circulo integrado (transistores, cableado y otros componentes en un solo chip) redujeron el costo y el tamao de las computadoras an ms. Las minicomputadoras aparecieron el mercado. Los programas empaquetados, popularmente conocidos como paquetes software, se volvieron disponibles. Una pequea empresa poda comprar un paquete que necesitaba (por ejemplo, par contabilidad) en lugar de escribir su propio programa. Una nueva industria naci del software. La generacin duro ms o menos de 1965 a 1975.Carta Generacin.-La cuarta generacin (aproximadamente de 1975 a 1985) vio nacer las microcomputadoras. La primera calculadora de escritorio (Altar 8800) se volvi disponible en 1975. Los avances en la industria de l a electrnica permitieron que subsistemas de computadoras completos cupieran en una sola tarjeta de circuito. Esta generacin tambin vio la aparicin de las redes de computadora.Quinta Generacin.-Esta generacin de duracin indefinida comenz en 1985. Presencio la aparicin de las computaras laptop y palmtop, mejoras en los medios de almacenamiento secundarios (CD-ROM, DVD, etc.), el uso de la multimedia y el fenmeno de la realidad virtual.

4.-Componentes.-

4.1.-Computadora.- Una computadora es un dispositivo electrnico utilizado para procesar informacin y obtener resultados. Los datos y la informacin se pueden introducir en la computadora por la entrada (input) . La computadora se puede considerar como una unidad en la que se ponen ciertos datos, entrada de datos, procesa estos datos y produce unos datos de salida. Los datos de entrada y los datos de salida pueden ser realmente cualquier cosa, texto, dibujos o sonido. El sistema ms sencillo de comunicarse una persona con la computadora es esencialmente mediante un ratn (mouse), un teclado y una pantalla (monitor). Hoy da existen otros dispositivos muy populares tales como escneres, micrfonos, altavoces, c- maras de vdeo, cmaras digitales, etc.; de igual manera, mediante mdems, es posible conectar su computadora con otras computadoras a travs de redes, siendo la ms importante, la red Internet.Los componentes fsicos que constituyen la computadora, junto con los dispositivos que realizan las tareas de entrada y salida, se conocen con el trmino hardware. El conjunto de instrucciones que hacen funcionar a la computadora se denomina programa, que se encuentra almacenado en su memoria; a la persona que escribe programas se llama programador y al conjunto de programas escritos para una computadora se llama software.4.2.-Dispositivos de Entrada/Salida .- Los dispositivos de entrada, como su nombre indica, sirven para introducir datos (informacin) en la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada convierten la informacin de entrada en seales elctricas que se almacenan en la memoria central. Dispositivos de entrada tpicos son teclados, lectores de tarjetas perforadas, lpices pticos, palancas de mando (joystick), lectores de cdigos de barras, escneres, micrfonos, lectores de tarjetas digitales, lectores RFID (tarjetas de identificacin por radio frecuencia), etc. Hoy da tal vez el dispositivo de entrada ms popular es el ratn (mouse) que mueve un puntero grfico (electrnico) sobre la pantalla que facilita la interaccin usuario/mquina.Los dispositivos de salida permiten representar los resultados (salida) del proceso de los datos. El dispositivo de salida tpico es la pantalla o monitor. Otros dispositivos de salida son: impresoras (imprimen resultados en papel), trazadores grficos (plotters), reconocedores (sintetizadores) de voz, altavoces, etc.Dispositivos de entrada/salida y dispositivos de almacenamiento masivo o auxiliar (memoria externa) son: unidad de discos (disquetes, CD-ROM, DVD, cintas, discos duros, etc.), videocmaras, memorias flash, USB, etc.4.3.-La memoria central (interna).-La memoria central o simplemente memoria (interna o principal) se utiliza para almacenar informacin (RAM, Random Access Memory). En general, la informacin almacenada en memoria puede ser de dos tipos: instrucciones, de un programa y datos con los que operan las instrucciones. Por ejemplo, para que un programa se pueda ejecutar (correr, rodar, funcionar..., en ingls, run), debe ser situado en la memoria central, en una operacin denominada carga (load) del programa. Despus, cuando se ejecuta (se realiza, funciona) el programa, cualquier dato a procesar por el programa se debe llevar a la memoria mediante las instrucciones del programa. En la memoria central, hay tambin datos diversos y espacio de almacenamiento temporal que necesita el programa cuando se ejecuta a fin de poder funcionar.Con el objetivo de que el procesador pueda obtener los datos de la memoria central ms rpidamente, normalmente todos los procesadores actuales (muy rpidos) utilizan una memoria denominada cach que sirve para almacenamiento intermedio de datos entre el procesador y la memoria principal. La memoria cach en la actualidad se incorpora casi siempre al procesador.

4.3.1.-Organizacin de la Memoria.La memoria central de una computadora es una zona de almacenamiento organizada en centenares o millares de unidades de almacenamiento individual o celdas. La memoria central consta de un conjunto de celdas de memoria (estas celdas o posiciones de memoria se denominan tambin palabras, aunque no guardan analoga con las palabras del lenguaje). El nmero de celdas de memoria de la memoria central, dependiendo del tipo y modelo de computadora; hoy da el nmero suele ser millones (512, 1.024, etc.). Cada celda de memoria consta de un cierto nmero de bits (normalmente 8, un byte). La unidad elemental de memoria se llama byte (octeto). Un byte tiene la capacidad de almacenar un carcter de informacin, y est formado por un conjunto de unidades ms pequeas de almacenamiento denominadas bits, que son dgitos binarios (0 o 1).Por ejemplo. se acepta que un byte contiene ocho bits. Por consiguiente, si se desea almacenar la frase: Hola Mortimer todo va bien La computadora utilizar exactamente 27 bytes consecutivos de memoria. Obsrvese que, adems de las letras, existen cuatro espacios en blanco y un punto (un espacio es un carcter que emplea tambin un byte).

Mientras que cada carcter de un dato alfanumrico se almacena en un byte, la informacin numrica se almacena de un modo diferente. Los datos numricos ocupan 2, 4 e incluso 8 bytes consecutivos, dependiendo del tipo de dato numrico. Existen dos conceptos importantes asociados a cada celda o posicin de memoria: su direccin y su contenido. Cada celda o byte tiene asociada una nica direccin que indica su posicin relativa en memoria y mediante la cual se puede acceder a la posicin para almacenar o recuperar informacin. La informacin almacenada en una posicin de memoria es su contenido. La Figura 1.6 muestra una memoria de computadora que consta de 1.000 posiciones en memoria con direcciones de 0 a 999. El contenido de estas direcciones o posiciones de memoria se llaman palabras, de modo que existen palabras de 8, 16, 32 y 64 bits. Por consiguiente, si trabaja con una mquina de 32 bits, significa que en cada posicin de memoria de su computadora puede alojar 32 bits, es decir, 32 dgitos binarios, bien ceros o unos.Siempre que se almacena una nueva informacin en una posicin, se destruye (desaparece) cualquier informacin que en ella hubiera y no se puede recuperar. La direccin es permanente y nica, el contenido puede cambiar mientras se ejecuta un programa. La memoria central de una computadora puede tener desde unos centenares de millares de bytes hasta millones de bytes.En la actualidad las computadoras personales tipo PC suelen tener memorias centrales de 512 MB a 2 GB, aunque ya es muy frecuente verlas con memorias de 4 GB y hasta 8 GB. La memoria principal es la encargada de almacenar los programas y datos que se estn ejecutando y su principal caracterstica es que el acceso a los datos o instrucciones desde esta memoria es muy rpido.4.3.2.-Tipos de memoria principalEn la memoria principal se pueden distinguir dos tipos de memoria: RAM y ROM. La memoria RAM (Random Access Memory, Memoria de acceso aleatorio) almacena los datos e instrucciones a procesar. Es un tipo de memoria voltil (su contenido se pierde cuando se apaga la computadora); esta memoria es, en realidad, la que se suele conocer como memoria principal o de trabajo; en esta memoria se pueden escribir datos y leer de ella. La memoria ROM (Read Only Memory, Memoria de slo lectura) es una memoria permanente en la que no se puede escribir (viene pregrabada por el fabricante); es una memoria de slo lectura. Los programas almacenados en ROM no se pierden al apagar la computadora y cuando se enciende, se lee la informacin almacenada en esta memoria. Al ser esta memoria de slo lectura, los programas almacenados en los chips ROM no se pueden modificar y suelen utilizarse para almacenar los programas bsicos que sirven para arrancar la computadora.4.4.-La Unidad Central de Proceso (UCP).- La Unidad Central de Proceso, UCP (Central Processing Unit, CPU, en ingls), dirige y controla el proceso de informacin realizado por la computadora. La UCP procesa o manipula la informacin almacenada en memoria; puede recuperar informacin desde memoria (esta informacin son datos o instrucciones: programas). Tambin puede almacenar los resultados de estos procesos en memoria para su uso posterior. La UCP consta de dos componentes: unidad de control (UC) y unidad aritmtica-lgica (UAL). La unidad de control (Control Unit, CU) coordina las actividades de la computadora y determina qu operaciones se deben realizar y en qu orden; asimismo controla y sincroniza todo el proceso de la computadora. La unidad aritmtico-lgica (Arithmetic-Logic Unit, ALU) realiza operaciones aritmticas y lgicas, tales como suma, resta, multiplicacin, divisin y comparaciones. Los datos en la memoria central se pueden leer (recuperar) o escribir (cambiar) por la UCP.4.5.-Memoria externa (almacenamiento masivo).- Cuando un programa se ejecuta, se debe situar primero en memoria central de igual modo que los datos. Sin embargo, la informacin almacenada en la memoria se pierde (borra) cuando se apaga (desconecta de la red elctrica) la computadora, y por otra parte la memoria central es limitada en capacidad. Por esta razn, para poder disponer de almacenamiento permanente, tanto para programas como para datos, se necesitan dispositivos de almacenamiento secundario, auxiliar o masivo (mass storage o secondary sto rage). Los dispositivos de almacenamiento o memorias auxiliares (externas o secundarias) ms comnmente utilizados son: cintas magnticas, discos magnticos, discos compactos (CD-ROM, Compact Disk Read Only Memory) y videodiscos digitales (DVD). Las cintas son utilizadas principalmente por sistemas de computadores grandes similares a las utilizadas en los equipos de audio. Los discos y disquetes magnticos se utilizan por todas las computadoras, especialmente las medias y pequeas las computadoras personales. Los discos pueden ser duros, de gran capacidad de almacenamiento (su capacidad actual oscila entre 40 GB y 500 GB), disquetes o discos flexibles (floppy disk), ya casi en desuso. Aunque todava se suelen comercializar lectoras de disquetes para compatibilidad con equipos antiguos. El disquete, ya casi en desuso, es de 3,5 y de 1,44 MB de capacidad.Los discos compactos (conocidos popularmente como CD) son soportes digitales pticos utilizados para almacenar cualquier tipo de informacin (audio, vdeo, documentos...). Se desarroll en 1980 y comenz a comercializarse en 1982. Existen diferentes modelos CD-ROM (de slo lectura), CD-R (grabable), CD-RW (reescribible). Su capacidad de almacenamiento va de 650 MB a 875 MB e incluso 215 MB. Los DVD constituyen un formato multimedia de almacenamiento ptico y que se puede usar para guardar datos, incluyendo pelculas de alta calidad de vdeo y audio. Los formatos ms populares son: DVDROM, DVDR, DVDRW, DVDRAM, y sus capacidades de almacenamiento van desde 4,7 GB y 8,5 GB hasta 17,1 GB, segn sean de una cara, de dos caras y de una capa simple o capa doble. Los ltimos discos pticos presentados en el mercado durante 2006 son: Blu-ray y HD DVD. Estos discos son de alta definicin y su capacidad de almacenamiento es muy grande de 15 GB a 50 GB y podr llegar en el futuro hasta 200 GB. La informacin almacenada en la memoria central es voltil (desaparece cuando se apaga la computadora) mientras que la informacin almacenada en la memoria externa (masiva) es permanente. Esta informacin se organiza en unidades independientes llamadas archivos (ficheros, file en ingls). Los resultados de los programas se pueden guardar como archivos de datos y los programas que se escriben se guardan como archivos de programas, ambos en la memoria auxiliar. Cualquier tipo de archivo se puede transferir fcilmente desde la memoria auxiliar hasta la memoria central para su proceso posterior. En el campo de las computadoras es frecuente utilizar la palabra memoria y almacenamiento o memoria externa, indistintamente.Las computadoras modernas necesitan comunicarse con otras computadoras. Si la computadora se conecta con una tarjeta de red se puede conectar a una red de datos locales (red de rea local). De este modo se puede acceder y compartir a cada una de las memorias de disco y otros dispositivos de entrada y salida. Si la computadora tiene un mdem, se puede comunicar con computadoras lejanas. Se pueden conectar a una red de datos o enviar correo electrnico a travs de las redes corporativas Intranet/Extranet o la propia red Internet. Las redes inalmbricas permiten conexiones a Internet desde numerosos lugares, siempre que su PC disponga de tarjetas o conexiones inalmbricas.

5.-Lenguajes.- Se debe diferenciar entre el acto de crear un programa y la accin de la computadora cuando ejecuta las instrucciones del programa. La creacin de un programa se hace inicialmente en papel y a continuacin se introduce en la computadora y se convierte en lenguaje entendible por la computadora.El propsito de un lenguaje informtico (lenguaje de computadora) es permitir a las personas comunicarse con una computadora. Los lenguajes de los humanos y los lenguajes de la mquina son muy diferentes, ya que las caractersticas y posibilidades de las personas y de las mquinas son muy diferentes. Los lenguajes de computadoras permiten a las personas escribir en un lenguaje que sea ms apropiado a las caractersticas humanas y se puedan traducir al lenguaje mquina de diferentes tipos de mquinas.Los principales tipos de lenguajes utilizados en la actualidad son tres: Lenguajes mquina, Lenguaje de bajo nivel (ensamblador), Lenguajes de alto nivel.5.1.-Instrucciones ala computadora.- Los diferentes pasos (acciones) de un algoritmo se expresan en los programas como instrucciones, sentencias o proposiciones (normalmente el trmino instruccin se suele referir a los lenguajes mquina y bajo nivel, reservando la sentencia o proposicin para los lenguajes de alto nivel). Por consiguiente, un programa consta de una secuencia de instrucciones, cada una de las cuales especifica ciertas operaciones que debe ejecutar la computadora.La elaboracin de un programa requerir conocer el juego o repertorio de instrucciones del lenguaje. Aunque en el Captulo 3 se analizarn con ms detalle las instrucciones, adelantaremos los tipos fundamentales de instrucciones que una computadora es capaz de manipular y ejecutar. Las instrucciones bsicas y comunes a casi todos los lenguajes de programacin se pueden condensar en cuatro grupos:

Instrucciones de entrada/salida.- Instrucciones de transferencia de informacin y datos entre dispositivos perifricos (teclado, impresora, unidad de disco, etc.) y la memoria central. Instrucciones aritmticas lgicas.- Instrucciones que ejecutan operaciones aritmticas (suma, resta, multiplicacin, divisin, potenciacin), lgicas (operaciones and, or not, etc.). Instrucciones selectivas.- Instrucciones que permiten la seleccin de tareas alternativas en funcin de los resultados de diferentes expresiones condicionales. Instrucciones repetitivas.- Instrucciones que permiten la repeticin de secuencias de instrucciones un nmero determinado de veces.

5.2.-Lenguajes Maquina.- Los lenguajes mquina son aquellos que estn escritos en lenguajes directamente inteligibles por la mquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres dgitos O y l) que especifican una operacin, y las posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones de mquina o cdigo mquina). El cdigo mquina es el conocido cdigo binario.Las instrucciones en lenguaje mquina dependen del hardware de Ja computadora y, por tanto, diferirn de una computadora a otra. El lenguaje mquina de un PC (computadora personal) ser diferente de un sistema HP (Hewlett Packard), Dell, COMPAQ o un sistema de IBM.Las ventajas de programar en lenguaje mquina se refieren, fundamentalmente, a la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin.Los inconvenientes en la actualidad superan a las ventajas, lo que hace prcticamente no recomendables los lenguajes mquina al programador de aplicaciones. Estos inconvenientes son: Dificultad y lentitud en la codificacin, Poca fiabilidad, Dificultad grande de verificar y poner a punto los programas. Los programas slo son ejecutables en el mismo procesador (UPC).

Para evitar los lenguajes mquina, desde el punto de vista del usuario, se han creado otros lenguajes que permiten escribir programas con instrucciones similares al lenguaje humano (por desgracia casi siempre ingls, aunque existen raras excepciones, como es el caso de las antiguas versiones espaolas del lenguaje LOGO). Estos lenguajes se denominan de alto y bajo nivel.5.3.-Lenguajes de Bajo Nivel.- Los lenguajes de bajo rvel son ms fciles de utilizar que los lenguajes mquina, pero, al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador (tassembly lenguaje). Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos (mnemonics). Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: en ingls. ADD, SUB, DIV, etc.; en espaol, SUM, RES, DIV, etc.Una instruccin tpica de suma sera:ADD, M, N, PEsta instruccin poda significar sumar el nmero contenido en la posicin de memoria Mal nmero almacenado en la posicin de memoria N y situar el resultado en la posicin de memoria P. Evidentemente, es mucho ms sencillo recordar la instruccin anterior con un nemotcnico que su equivalente en cdigo mquina: 0110 1001 1010 1011Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora esto se diferencia esencialmente del lenguaje mquina, sino que requiere una fase de traduccin al lenguaje mquina. El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje mquina se conoce como programa objeto, ya directamente inteligible por la computadora.El traductor de programas fuente a objeto es un programa llamado ensamblador (assembler), existente en casi todas las computadoras.No se debe confundir aunque en espaol adoptan el mismo nombre el programa ensamblador (assembler), encargado de efectuar la traduccin del programa fuente escrito a lenguaje mquina,con el lenguaje ensamblador (assembly languaje ), lenguaje de programacin con una estructura y gramtica definidas.Los lenguajes ensambladores presentan la ventaja frente a los lenguajes mquina de su mayor facilidad de codificacin y, en general, su velocidad de clculo.Los inconvenientes ms notables de los lenguajes ensambladores son:

Dependencia total de ta mquina, lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas). El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh. La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que exige no slo las tcnicas de programacin, sino tambin el conocimiento del interior de la mquina.

Hoy da los lenguajes ensambladores tiene sus aplicaciones muy reducidas en la programacin de aplicaciones y se centran en aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos, etc.

5.4.-Lenguajes de Alto Nivel.- Los lenguajes de alto nivel son los ms utilizados por los programadores. Estn diseados para que las personas escriban y entiendan los programas de un modo mucho ms fcil que los lenguajes mquina y ensambladores. Otra razn es que un programa escrito en lenguaje de alto nivel es independiente de la mquina: esto es, las instrucciones del programa de la computadora no dependen del di seo del hardware o de una computadora en particular. En consecuencia, los programas escritos en lenguaje de alto nivel son portables o transportables, lo que significa la posibilidad de poder ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras; al contrario que los programas en lenguaje mquina o ensamblador, que slo se pueden ejecutar en un determinado tipo de computadora. Los lenguajes de alto nivel presentan las siguientes ventajas:

El tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas similares a los lenguajes humanos. Nombres de las instrucciones, pueden ser READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son ms fciles. Reduccin del coste de los programas. Transportabilidad.

Los inconvenientes se concretan en:

Incremento del tiempo de puesta a punto, al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la mquina, que se explotan mucho mejor en lenguajes mquina y ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin de los programas es mucho mayor.

Al igual que sucede con los lenguajes ensambladores, los programas fuente tienen que ser traducidos por los programas traductores, llamados en este caso compiladores e intrpretes.Los lenguajes de programacin de alto nivel existentes hoy son muy numerosos, aunque la prctica demuestra que su uso mayoritario se reduce a:C C++ COBOL FORTRAN Pascal Visual BASIC Java C#Estn muy extendidos:Ada-95 Modula-2 Prolog LISP Smalltalk Eiffelson de gran uso en el mundo profesional:Borland De/phi SQL Power BuilderAunque hoy da el mundo Internet consume gran cantidad de recursos en forma de lenguajes de programacin, tales como Java, HTML, XML, JavaScript, Visual J y ltimamente C# y PHP.

5.5.-Traductores de Lenguajes.- Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a cdigo mquina. Los traductores se dividen en:

Compiladores, Intrpretes.

5.5.1.-CompiladoresDespus que se ha diseado el algoritmo y escrito el programa en un papel, se debe comenzar el proceso de introducir el programa en un archivo (fichero) en el disco duro de la computadora. La introduccin y modificacin de su programa en un archivo se hace utilizando un editor de texto o simple mente un editor, un programa que viene con su computadora, normalmente, y que le permite el almacenamiento y recuperacin de lo que se ha escrito en el disco. El aprendizaje de cmo utilizar un editor hace la tarea de introducir un programa una tarea muy fcil.El programa que se ha introducido est escrito en C o en Java, pero ni C ni Java son lenguajes mquina de su computadora, muy al contrario son lenguajes de alto nivel diseados para hacer ms fcil la programacin que utilizando el lenguaje mquina. Una computadora no entiende los lenguajes de alto nivel. En consecuencia, un programa escrito en un lenguaje de alto nivel debe ser traducido a un lenguaje que Ja mquina pueda comprender. Los lenguajes que la computadora puede comprender (ms o menos directamente) se llaman lenguajes de bajo nivel. La traduccin de un programa escrito en un lenguaje de alto nivel, como C++ o Java, a un lenguaje que pueda entender la computadora se hace mediante otro programa conocido como compilador.Los lenguajes de bajo nivel que la computadora puede entender directamente se conocen como lenguajes ensamblador o lenguajes mquina. En realidad, aunque son muy similares y en ocasiks se les considera sinnimos, tienen algunas pequeas diferencias. El lenguaje que la computadora puede comprender directamente se denomina lenguaje mquina. El lenguaje ensamblador es casi la misma pero necesita un paso adicional para que la traduccin pueda ser entendida por la mquina. Si un compilador traduce su programa de alto nivel a algn lenguaje de bajo nivel, no es exactamente lenguaje de mquina, se necesitar, por tanto, una pequea traduccin adicional antes de ser ejecutado en la computadora, pero normalmente este proceso suele ser automtico y no es problemtico. Veamos en la prctica cmo se ejecuta el programa por compilador. Cuando se ejecuta un programa en lenguaje de alto nivel, tal como C, C++ o Java, se est ejecutando realmente una traduccin de ese programa a un lenguaje de bajo nivel. Por consiguiente, antes de que se ejecute un programa escrito en un lenguaje de alto nivel, se debe ejecutar en primer lugar el compilador en el programa. Cuando se ejecuta un compilador sobre sus programa se dice que se compila el programa.Una desventaja del proceso de traduccin que se acaba de describir es que se necesita un compilador diferente para cada tipo de computadora y cada sistema operativo. Si se desea ejecutar su programa en lenguaje de alto nivel en tres mquinas diferentes, se necesitarn utilizar tres diferentes compiladores y se debe compilar su programa tres veces. Incluso si un fabricante construye una nueva computadora el fabricante deber contratar a alguien para que le escriba un nuevo compilador para esa computadora. Esto es un problema, ya que los compiladores son programas muy grandes y caros, que llevan mucho tiempo fabricarlos. A pesar de los costes, este es el mtodo en que trabajan la mayora de los compiladores de lenguajes de alto nivel, C, C++, ... Java, sin embargo, no utiliza ese mtodo sino que utiliza un enfoque ligeramente diferente y ms verstil para compilar.Suele haber confusin en Ja terminologa, debido a que un compilador, la entrada al programa compilador y la salida del programa compilador son tambin programas. Para evitar la confusin, el pro grama escrito en un lenguaje de programacin (C++ o Java, si tuviramos un compilador de pseudocdigo, el lenguaje algortmico que explicaremos ms adelante, en nuestro caso UPSAM) se denomina programa fuente o cdigo fuente. El programa traducido a lenguaje de bajo nivel producido por el compilador se denomina normalmente el programa objeto o cdigo objeto. La palabra cdigo significa simplemente eso: un programa o una parte de programa. El archivo objeto se puede cargar en la memoria principal de la computadora y ejecutado por UCP.Un compilador es un programa que traduce un programa en lenguaje de alto nivel. Tal como un programa C / C++ I J ova, en un programa de un lenguaje ms sencillo que la computadora puede comprender ms o menos directamente.En resumen, para crear y ejecutar un programa en un lenguaje tal como C, C++ o Java, se necesita introducir el programa utilizando un editor de texto; ejecutar un programa especial denominado compilador, traducir el lenguaje de alto nivel a lenguaje mquina y a continuacin cargar el lenguaje mquina en memoria principal y ejecutarlo.

La compilacin y sus fasesLa compilacin es el proceso de traduccin de programas fuente a programas objeto. El programa objeto obtenido de la compilacin ha sido traducido normalmente a cdigo mquina.Para conseguir el programa mquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina directamente ejecutable.El proceso de ejecucin de un programa escrito en un lenguaje de programacin (por ejemplo, C) y mediante un compilador suele tener los siguientes pasos:1.-Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una mquina de escribir electrnica) y guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco).2.-Introducir el programa fuente en memoria.3.-Compilar el programa con el compilador C. 4.- Verificar y corregir errores de compilacin (listado de errores).5.-Obtencin del programa objeto.6.-El enlazador (linker) obtiene el programa ejecutable. 7.-Se ejecuta el programa y, si no existen errores, se tendr la salida del programa.5.5.2.- InterpretesUn intrprete es un traductor que toma un programa fuente, lo traduce y a continuacin lo ejecuta. Los programas intrpretes clsicos, como BASIC, prcticamente ya no se utilizan, aunque puede encontrar una vieja computadora que funcione con la versin Basic bajo el Sistema Operativo DOS que corre en las computadoras personales. Sin embargo, est muy extendida la versin interpretada del lenguaje Smalltalk, un lenguaje orientado a objetos puro. Los intrpretes han vuelto a renacer con la aparicin de Java, ya que para entender el cdigo en bytes (bytecode) al que traduc e un compilador Java se necesita un intrprete.

5.6.-Historia de los Lenguajes de Programacion.-La historia de la informtica y de la computacin se ha caracterizado fundamentalmente en la existencia de centenares de lenguajes de programacin, de forma tal que siempre se ha hablado de la Ba- bel de los lenguajes, aunque bien es cierto que son slo unas decenas escasas los que han tenido un impacto significativo, y unos pocos los utilizados en la industria. Los negocios y la ciencia.Muchos de los lenguajes de programacin actuales tienen sus races en los lenguajes que nacieron a finales de los cincuenta y primeros aos de los sesenta, tales como COBOL ( 1960), FORTRAN IV (1961), BASIC (1964), WGO (1967). Estos lenguajes representaron la primera alternativa a los lenguajes ensambladores. En la dcada de los setenta y primeros aos de los ochenta emergieron nuevos lenguajes, como Pascal (1971), C (1972) y Ada (1979), que se convirtieron en dominantes, desplazando, por ejemplo, a otros como ALGOL y BASIC. Otros lenguajes, como COBOL y FORTRAN, lograron adaptarse y se mantuvieron como lenguajes de referencia en el mundo de los negocios y en el campo cientfico, respectivamente, con versiones actualizadas y estandarizadas por organizaciones, como ANSI.Todos estos lenguajes anteriores seguan el estilo de programacin estructurada y se conocan lenguajes de programacin imperativos o estructurados. En paralelo con el desarrollo de estos lenguajes surgieron dos nuevos estilos o paradigmas de programacin; programacin funcional (de los que Haskell es un ejemplo moderno) y programacin orientada a objetos. Smalltalk y SIMUI.A, lenguajes antiguos por otra parte, se apoyaron en el concepto de clase como elemento fundamental de un programa. Posteriormente, a principios de los ochenta apareci C++ como lenguaje imperativo con propiedades de orientacin a objetos y que durante la dcada de los noventa ha sido el lenguaje de programacin orientada a objetos por excelencia. En 1995 se present oficialmente por el constructor Sun el lenguaje Java, un lenguaje orientado a objetos y con una funcionalidad muy dirigida a la red Internet. En el ao 2000 Microsoft present C#.

5.6.1.-El lenguaje C: historia y caractersticas C es el lenguaje de programacin de propsito general asociado, de modo universal, al sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C se ha producido porque este lenguaje no est prcticamente asociado a ningn sistema operativo, ni a ninguna mquina en especial. Esta es la razn fundamental por la cual C es conocido como el lenguaje de programacin de sistemas por excelencia.C es una evolucin de los lenguajes BCPL desarrollado por Martn Richards y B desarrollado por Ken Thompson en 1970 para el primitivo UNIX de la computadora DEC PDP7. C naci realmente en 1978, con la publicacin de The C Programming Languaje, por Brian Kernig han y Dennis Ritchie (Prentice Hall, 1978). Desde su nacimiento, C fue creciendo en popularidad y los sucesivos cambios en el lenguaje a lo largo de los aos junto a la creacin de compiladores por grupos no involucrados en su diseo hicieron necesario pensar en la estandarizacin de la definicin del lenguaje C.As. en 1983, el American National Standard Institute (ANSI), una organizacin internacional de estandarizacin, cre un comit (el denominado X3J 11) cuya tarea fundamental consista en hacer una definicin no ambigua del lenguaje C, e independiente de la mquina. Haba nacido el estndar ANSI del lenguaje C. Con esta definicin de C se asegura que cualquier fabricante de software que vende un compilador ANSI C incorpora todas las caractersticas del lenguaje especificadas por el estndar. Esto significa tambin que los programadores que escriban programas en C estndar tendrn la seguridad de que corrern sus modificaciones en cualquier sistema que tenga un compilador C.C es un lenguaje de alto nivel, que permite programar con instrucciones de lenguaje de propsito general. Tambin C se define como un lenguaje de programacin estructurado de propsito general; aunque en su diseo tambin prim el hecho de fuera especificado como un lenguaje de programacin de Sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.El estndar ANSI C formaliza construcciones no propuestas en la primera versin de C, en especial asignacin de estructuras y enumeraciones. Entre otras aportaciones, se defini esencialmente una nueva forma de declaracin de funciones (prototipos). Pero es esencialmente la biblioteca estndar de funciones otra de las grandes aportaciones.Hoy, en el siglo XXI, C sigue siendo uno de los lenguajes de programacin ms utilizados en la industria del software, asf como en insrnnos tecnolgicos, escuelas de ingeniera y universidades. Prcticamente todos los fabricantes de sistemas operativos, UNIX. Linux, MacOS, Solaris... , soportan diferentes tipos de compiladores de lenguaje C.

5.6.2.-Una breve historia de C++C++ es heredero directo del lenguaje C que a su vez se deriva del lenguaje B [Richards, 1980]. C se mantiene como un subconjunto de C++. Otra fuente de inspiracin de C++, como seala su autor Bjarne Stroustrup fue Simula 67, del que tom el concepto de clase (con clases derivadas y funciones virtuales).El lenguaje de programacin C fue desarrollado por Dennis Ritche de AT&T Bell Laboratories que se utiliz para escribir y mantener el sistema operativo UNIX (hasta que apareci C, el sistema operativo UNIX fue desarrollado por Ken Thompson en AT&T Bel! Laboratories mediante el lenguaje ensamblador o el lenguaje B). Ces un lenguaje de propsito general que se puede utilizar para escribir cualquier tipo de programa, pero su xito y popularidad est especialmente relacionado con el sistema operativo UNIX. Fue desarrollado como lenguaje de programacin de sistemas; es decir, un lenguaje de programacin para escribir sistemas operativos y utilidades (programas) del sistema. Los sistemas operativos son los programas que gestionan (administran) los recursos de la computadora. Ejemplos bien conocidos de sistemas operativos adems de UNIX son los ya citados MS/DOS, OS/2, MVS, Lynux, Windows 95/98, Windows NT, Windows 2000, OS Mac, etc.La especificacin formal del lenguaje C es un documento escrito por Ritchie titulado The C Reference Manual. En 1997 Ritchie y Brian Kernighan ampliaron ese documento y publicaron un libro referencia del lenguaje The C Programming Language (tambin conocido por el K&R).Aunque C es un lenguaje muy potente, tiene dos caractersticas que lo hacen inapropiado como una introduccin moderna a la programacin. Primero, C requiere un nivel de sofisticacin a sus usuarios que les obliga a un difcil aprendizaje para los programadores principiantes, ya que es de comprensin difcil. Segundo, C fue diseado al principio de los setenta, y la naturaleza de la programacin ha cambiado de modo significativo en la dcada de los ochenta y noventa.Para subsanar estas deficiencias Bjame Stroustrup de AT&T Bell Laboratories desarroll C++ al principio de la dcada de los ochenta. Strousrrup dise C++ como un mejor C. En general, C estndar es un subconjunto de C++ y la mayora de los programas C son tambin programas C++ (la afirmacin inversa no es verdadera). C++, adems de aadir propiedades a C, presenta caractersticas y propiedades de programacin orientada a objetos, que es una tcnica de programacin muy poten te y que se ver en la ltima parte de este libro.Se han presentado varias versiones de C++ y su evolucin contina en al actualidad. Las caractersticas ms notables que han ido incorporndose a C++ son: herencia mltiple, genericidad, plantillas, funciones virtuales, excepciones, etc. C++ ha ido evolucionandoao a ao y como su autor ha explicado: evolucion siempre para resolver problemas encontrados por los usuarios y como consecuencia de conversaciones entre el autor, sus amigos y sus colegass".C++ comenz su proyecto de estandarizacin ante el comit ANSI y su primera referencia es The Annotated C++ Reference Manual'". En diciembre de 1989 se reuni el comit X3Jl6 del ANSI por iniciativa de Hewleu Packard. En junio de I 991 la estandarizacin de ANSI pas a formar parte de un esfuerzo de estandarizacin ISO. En 1995 se public un borrador de estndar para su examen y en 1998 se aprob el estndar C++ internacional. Stroustrup public en 1998 la tercera edicin de su libro The C++ Programming Language y en el ao 2000 una edicin especial. Este libro sigue el estndar ANSI/ISO C++.

5.6.3.-Breve historia de JavaOcho aos despus de su lanzamiento. Java se ha convertido en un estndar de la industria, en un lenguaje de programacin para desarrollo de aplicaciones tanto de propsito general como de Internet y tambin en un lenguaje para comenzar Ja formacin en programacin, al tener caractersticas excelentes para el aprendizaje.Java, desarrollado por Sun Microsystems en 1995, es un magnfico y completo lenguaje de programacin orientado a objetos diseado para distribuir contenidos a travs de una red. Una de sus principales caractersticas es que permite operar de forma independiente de la plataforma y del sistema operativo que se est utilizando. Esto quiere decir que permite crear una aplicacin que podr descargarse de Ja red y funcionar posteriormente en cualquier tipo de plataforma de hardware o software. Generalmente, por el contrario, todo programa o aplicacin queda atado a dos cosas: al hardware y al sistema operativo. As, por ejemplo, una aplicacin Windows slo funcionar en plataforma Wintel (equipada con procesadores lntel y sistema operativo Windows) igual que una versin creada para Mac slo funciona sobre Power PC, Imac o Mac OS; o la misma aplicacin desarrollada para Unix, slo lo hace sobre plataformas Unix y no hay forma de que corra sobre otra mquina.La idea de Java, por el contrario, es poner una capa sobre cualquier plataforma de hardware y sobre cualquier sistema operativo para permitir que cualquier aplicacin desarrollada en Java quede ligada nicamente a Java, independizada, por lo tanto, de la plataforma. Esta concepcin queda recogida en el concepto de mquina virtual JVM (Java Virtual Machine), un software que interpreta instrucciones para cualquier mquina sobre la que est corriendo y que permite, una vez instalado. que una misma aplicacin pueda funcionar en un PC o en un Mac sin tener que tocarla. Hoy en da, cualquier sistema operativo moderno (Windows, Macintosh, Linux, Unix, Solaris, etc.) cuenta con una JVM. As, lo que hace Java en combinacin con esta mquina es funcionar como hardwarey como sistema operativo virtual, emulando en software una CPU universal. Al instalar Java sta actuar como una capa de abstraccin entre un programa y el sistema operativo, otorgando una total independencia de lo que haya por deba jo, es decir: cualquier aplicacin funcionar en cualquier mquina e incluso en cualquier dispositivo.Otra gran ventaja es que los programadores no tendrn que desarrollar varias versiones de la misma aplicacin, puesto que el modelo de desarrollo es el mismo se trate del dispositivo ms pequeo o del ms grande de los servidores. Otra gran ventaja es que permite que todas las mquinas, plataformas y aplicaciones se comuniquen entre s accediendo desde cualquier equipo, donde quiera que est situado, a las aplicaciones que residan en una red, ya sea Internet o una intranet o extranet.En definitiva, se puede decir que Java es lo ms cercano a un lenguaje de computacin universal que existe hoy da, lo que significa que puede correr en cualquier plataforma siempre y cuando una mquina virtual haya sido escrita para ella.

Por qu Java es importante para Internet?Internet ha ayudado considerablemente a catapultar a Java al zenit del mundo de la programacin de computadoras y Java, a su vez, ha tenido un profundo impacto en Internet. La razn es muy simple: Java extiende el universo de los objetos que se mueven libremente en el ciberespacio que forma la red Internet. En una red existen dos grandes categoras de objetos que se transmiten entre las computadoras conectadas (el servidor y la computadora personal): informacin pasiva y dinmica, programas interactivos. Un ejemplo fcil de datos pasivos son los correos electrnicos que usted recibe en su computadora o una pgina Web que se baja de la red. Incluso si descarga un programa est recibiendo datos pasivos hasta tanto no ejecute dicho programa. Sin embargo, existen otros tipos de objetos que se transmite por la red: programas dinmicos autoejecutables que son agentes activos en la computadora cliente.Estos programas en red dinmicos presentan serios problemas de seguridad y portabilidad. Java ha resuelto gran cantidad de problemas con un nuevo modelo de programa: el applet.Java se puede utilizar para crear dos tipos de programas: aplicaciones y applets. Una aplicacin es un programa que se ejecuta en su computadora bajo el sistema operativo de su computadora; en esencia, es un programa similar al creado utilizando C, C++ o Pascal. Cuando se utiliza para crear aplicaciones, Java es un lenguaje de propsito general similar a cualquier otro y con caractersticas que lo hacen idneo para programacin orientada a objetos. Java tiene una caracterstica notable que no tienen otros lenguajes: la posibilidad de crear applets. Un applet es una aplicacin diseada para ser transmitida por Internet y ejecutada por un navegador Web compatible con Java. Un applet es realmente un pequeo programa Java, descargado dinmicamente por la red, tal como una imagen, un archivo de sonido, un archivo musical o un videoclip, pero con una notable propiedad: es un programa inteligente que puede reaccionar dinmicamente a entradas y cambios del usuario.Java es un lenguaje idneo para resolver los problemas de seguridad y portabilidad inherente a los sistemas que trabajan en red. La razn fundamental de este aserto reside en el hecho de que la salida de un compilador Java no es un cdigo ejecutable sino cdigos de bytes (bytecode). Un bytecode es un conjunto de instrucciones muy optimizadas diseadas para ser ejecutadas por un sistema en tiempo de ejecucin Java, denominado mquina virtual Java (Java Virtual Machine, JVM) que acta como un intrprete para los bytecodes. La traduccin de un programa en cdigos de bytes facilita la ejecucin del programa en una amplia variedad de entornos y plataformas. La razn es simple: slo es preciso implementar JVM en cada plataforma.

6.-Logros (Aplicaciones).-

Los ingenieros resuelven problemas del mundo real usando principios cientficos de disciplinas que incluyen matemticas, fsica, qumica y ciencias de la computacin. Esta diversidad de temas, y el desafo que representan los problemas reales, hace a la ingeniera interesante y gratificante. En esta seccin presentaremos algunos de los logros sobresalientes en ingeniera en los ltimos aos, para despus comentar algunos de los retos importantes en la materia que enfrentaremos al iniciar el nuevo siglo. Por ltimo, consideraremos algunas de las habilidades y capacidades no tcnicas que van a necesitar los ingenieros del siglo XXI.

Desde la invencin de la computadora a fines de la dcada de 1950, han ocurrido varios avances muy significativos en ingeniera. En 1989, la National Academy of Engineering seleccion diez logros sobresalientes en ingeniera de los 25 aos anteriores. Estos logros ilustran la naturaleza multidisciplinaria de la ingeniera y ponen de manifiesto las formas en que esta especialidad ha mejorado nuestra vida y ha expandido las posibilidades para el futuro al tiempo que provee una amplia variedad de interesantes y estimulantes carreras. A continuacin comentaremos brevemente estos diez logros. En las lecturas recomendadas al final del captulo se da ms informacin sobre estos temas.

6.1-Microprocesador.- La invencin del microprocesador, una diminuta computadora ms pequea que un sello de correo, es uno de los logros culminantes en ingeniera. Los microprocesadores se emplean en equipo electrnico, aparatos domsticos, juguetes y juegos, as como en automviles, aviones y transbordadores espaciales, porque ofrecen capacidades de cmputo potentes pero econmicas. Adems, los microprocesadores proporcionan la potencia de cmputo a las calculadoras y computadoras personales.6.2.-Alunizaje.- Varios de los diez logros ms grandes tienen que ver con la exploracin del espacio. El alunizaje fue tal vez el proyecto de ingeniera ms complejo y ambicioso jams intentado. Se requirieron avances importantes en el diseo de las naves Apolo, el alunizador y el cohete Saturno V de tres etapas. Incluso el diseo del traje espacial fue un proyecto de ingeniera destacado, dando como resultado un sistema que incluy un traje de tres piezas y una "mochila" que en conjunto pesaban 190 libras. La computadora desempe un papel clave, no slo en los diseos de los distintos sistemas, sino tambin en las comunicaciones requeridas durante cada vuelo a la Luna. Un solo vuelo requiri la coordinacin de ms de 450 personas en el centro de control de lanzamiento y de por lo menos otras 7000 en nueve barcos, 54 aviones y numerosas estaciones situadas alrededor de la Tierra.6.3.-Satlites de Aplicacin.- El programa espacial tambin proporcion gran parte del impulso para el desarrollo de los satlites de aplicacin, que proporcionan informacin meteorolgica, retransmiten seales de comunicacin, crean mapas de terrenos no cartografiados y suministran actualizaciones ambientales sobre la composicin de la atmsfera. El Sistema de Posicionamiento Global (GPS) es una constelacin de 24 satlites que di funden informacin de posicin, velocidad y tiempo a nivel mundial. Los receptores del GPS miden el tiempo que tarda una seal en viajar del satlite GPS al receptor. Con base en informacin recibida de cuatro satlites, un microprocesador en el receptor puede determinar mediciones precisas de la ubicacin del receptor; la exactitud vara entre unos cuantos metros y centmetros, dependiendo de las tcnicas de cmputo empleadas.6.4.-Diseo y Fabricacin Asistidos por Computadoras.- Otro de los grandes logros en ingeniera reconoce las contribuciones del diseo y fabricacin asistidos por computadora (CAD/ CAM). El CAD/ CAM ha generado una nueva revolucin industrial aumentando la rapidez y la eficiencia de muchos tipos de procesos de fabricacin. El CAD permite realizar el diseo con una computadora, la cual despus produce los planos finales, listas de componentes y resultados de simulaciones computarizadas. La CAM usa los resultados del diseo para controlar maquinaria o robots industriales a fin de fabricar, ensamblar y mover componentes.6.5.-Jumbo Jet.- El jumbo jet se origin a partir del avin de carga C5A de la fuerza area estadounidense que inici vuelos operativos en 1969.Gran parte del xito de los jumbo jet se puede atribuir al reactor de abanico de alta desviacin que permite volar ms lejos con menos combustible y con menos ruido que con los motores a reaccin anteriores. El ncleo del motor opera como un turborreactor puro: aspas compresoras succionan aire hacia la cmara de combustin del motor; el gas caliente en expansin empuja al motor hacia adelante y al mismo tiempo hace girar una turbina, la que a su vez impulsa el compresor y el abanico grande en la parte frontal del motor. El abanico, algirar, proporciona la mayor parte del empuje del motor.6.6.-Materiales Compuestos Avanzados.- La industria de la aviacin tambin fue la primera en desarrollar y usar materiales compuestos avanzados, que son materiales que se pueden pegar de modo que uno refuerza las fibras del otro. Los materiales compuestos avanzados se crearon para contar con materiales ms ligeros, fuertes y resistentes a la temperatura para aviones y naves espaciales. No obstante, ahora existen nuevos mercados para los materiales compuestos para uso en equipo deportivo. Por ejemplo, capas de fibras de Kevlar tejidas aumentan la resistencia y reducen el peso de los esqus para descenso en nieve, y los palos de golf de grafito/epoxy son ms fuertes y ligeros que los palos de acero convencionales. Los materiales compuestos tambin se usan en el diseo de prtesis.6.7.-Tomografa Axial Computarizada.- Las reas de medicina, bioingeniera y ciencias de la computacin hicieron equipo para el desarrollo de la mquina exploradora de CAT (tomografa axial computarizada). Este instrumento puede generar imgenes tridimensionales o cortes bidimensionales de un objeto usando rayos X que se generan desde diferentes ngulos alrededor del objeto. Cada rayo X mide una densidad desde su ngulo, y algoritmos computarizados muy complejos combinan la informacin de todos los rayos X para reconstruir una imagen clara del interior del objeto. Las exploraciones CAT se usan rutinariamente para identificar tumores, cogulos sanguneos y anomalas en el cerebro. El ejrcito de Estados Unidos est desarrollando un explorador CAT ligero y robusto que se puede transportar a estaciones mdicas en zonas de combate.6.8.-Ingeniera Genetica.- La ingeniera gentica, el trabajo de genetistas e ingenieros, ha dado origen a muchos productos nuevos que van desde la insulina hasta hormonas para el crecimiento y vegetales resistentes a infecciones. Un producto de ingeniera gentica se crea insertando un gen que produce una sustancia valiosa de un organismo en otro organismo que se multiplica, multiplicando al mismo tiempo el gen ajeno. El primer producto comercial de ingeniera gentica fue la insulina humana, que apareci con el nombre comercial de Humulin. Los trabajos actuales incluyen investigaciones de microbios alterados genticamente para limpiar desechos txicos y degradar pesticidas.6.9.-Laseres.- Los lseres son ondas de luz que tienen la misma frecuencia y viajan en un haz angosto que puede dirigirse y enfocarse. Se usan lseres de C02 para taladrar agujeros en materiales que van desde cermicas hasta materiales compuestos. Los lseres tambin se usan en procedimientos mdicos para soldar el desprendimiento de la retina ocular, sellar lesiones en vasos sanguneos, vaporizar tumores cerebrales y realizar ciruga del cada del odo interno. Las imgenes tridimensionales llamadas hologramas tambin se generan con lser.6.10.-Fibras pticas.- Las comunicaciones de fibra ptica, utilizan esta fibra compuesta de hilos de vi drio transparente ms delgados que un cabello humano. Una fibra ptica puede transportar ms informacin que las ondas de radio o las ondas elctricas en los alambres telefnicos de cobre, y no produce ondas electromagnticas que pueden causar interferencia en las lneas de comunicacin. Los cables transocenicos de fibra ptica proveen canales de comunicacin entre los continentes. La fibra ptica tambin se usa en instrumentos mdicos que permiten a los cirujanos introducir luz en el cuerpo huma no para realizar exmenes y ciruga con lser.

7.-Bibliografia.- Soluciones de Problemas de Ingeniera con MatLAB, Delores Etter, PRESTICE HALL Fundamentos de Programacion,Luis Joyanes Aguilar, McGrawHill Introduccion a las Ciencias Computacionales,Behrouz A. Forouzan, THOMSON Programacin en C++. Algoritmos, Estructuras y Objetos; Luis Joyanes Aguilar; McGrawHill