24
HISTORIA DE LA COMPUTACIÓN Y CONCEPTOS INFORMÁTICOS Del Ábaco a la tarjeta perforada: EL ABACO; quizá fue el primer dispositivo mecánico de contabilidad que existió. Se ha calculado que tuvo su origen hace al menos 5000 años y su efectividad ha soportado la prueba del tiempo. LA PASCALINA; El inventor y pintor Leonardo Da Vinci (1452-1519) trazó las ideas para una sumadora mecánica. Siglo y medio después, el filósofo y matemático francés Blaise Pascal (1623- 1662) por fin inventó y construyó la primera sumadora mecánica. Se le llamo Pascalina y funcionaba como maquinaria a base de engranes y ruedas. A pesar de que Pascal fue enaltecido por toda Europa debido a sus logros, la Pascalina, resultó un desconsolador fallo financiero, pues para esos momentos, resultaba más costosa que la labor humana para los cálculos aritméticos. LA LOCURA DE BABBAGE, Charles Babbage (1793- 1871), visionario inglés y catedrático de Cambridge, hubiera podido acelerar el desarrollo de las computadoras si él y su mente inventiva hubieran nacido 100 años después. Adelantó la situación del hardware computacional al inventar la "máquina de diferencias", capaz de calcular tablas matemáticas. En 1834, cuando trabajaba en los avances de la máquina de diferencias Babbage concibió la idea de una "máquina analítica". En esencia, ésta era una computadora de propósitos generales. Conforme con su diseño, la máquina analítica de Babbage podía suma r, substraer, multiplicar y dividir en secuencia automática a una velocidad de 60 sumas por minuto.

HISTORIA DE LA COMPUTACIÓN Y CONCEPTOS INFORMÁTICOS.docx

Embed Size (px)

Citation preview

HISTORIA DE LA COMPUTACIN Y CONCEPTOS INFORMTICOSDel baco a la tarjeta perforada:EL ABACO; quiz fue el primer dispositivo mecnico de contabilidad que existi. Se ha calculado que tuvo su origen hace al menos 5000 aos y su efectividad ha soportado la prueba del tiempo.

LA PASCALINA; El inventor y pintor Leonardo Da Vinci (1452-1519) traz las ideas para una sumadora mecnica. Siglo y medio despus, el filsofo y matemtico francs Blaise Pascal (1623-1662) por fin invent y construy la primera sumadora mecnica. Se le llamo Pascalina y funcionaba como maquinaria a base de engranes y ruedas. A pesar de que Pascal fue enaltecido por toda Europa debido a sus logros, la Pascalina, result un desconsolador fallo financiero, pues para esos momentos, resultaba ms costosa que la labor humana para los clculos aritmticos.

LA LOCURA DE BABBAGE, Charles Babbage (1793-1871), visionario ingls y catedrtico de Cambridge, hubiera podido acelerar el desarrollo de las computadoras si l y su mente inventiva hubieran nacido 100 aos despus. Adelant la situacin del hardware computacional al inventar la "mquina de diferencias", capaz de calcular tablas matemticas. En 1834, cuando trabajaba en los avances de la mquina de diferencias Babbage concibi la idea de una "mquina analtica". En esencia, sta era una computadora de propsitos generales. Conforme con su diseo, la mquina analtica de Babbage poda suma r, substraer, multiplicar y dividir en secuencia automtica a una velocidad de 60 sumas por minuto.

El diseo requera miles de engranes y mecanismos que cubriran el rea de un campo de ftbol y necesitara accionarse por una locomotora. Los escpticos le pusieron el sobrenombre de "la locura de Babbage". Charles Babbage trabaj en su mquina analtica hasta su muerte. Los trazos detallados de Babbage describan las caractersticas incorporadas ahora en la moderna computadora electrnica. Si Babbage hubiera vivido en la era de la tecnologa electrnica y las partes de precisin, hubiera adelantado el nacimiento de la computadora electrnica por varas dcadas. Irnicamente, su obra se olvid a tal grado, que algunos pioneros en el desarrollo de la computadora electrnica ignoraron por completo sus conceptos sobre memoria, impresoras, tarjetas perforadas y control de programa secuencial.

LA PRIMERA TARJETA PERFORADA; El telar de tejido, inventado en 1801 por el Francs Joseph-Marie Jackard (1753-1834), usado todava en la actualidad, se controla por medio de tarjetas perforadas. El telar de Jackard opera de la manera siguiente: las tarjetas se perforan estratgicamente y se acomodan en cierta secuencia para indicar un diseo de tejido en particular. Charles Babbage quiso aplicar el concepto de las tarjetas perforadas del telar de Jackard en su motor analtico. En 1843 Lady Ada Augusta Lovelace sugiri la idea de que las tarjetas perforadas pudieran adaptarse de manera que propiciaran que el motor de Babbage repitiera ciertas operaciones. Debido a esta sugerencia algunas personas consideran a Lady Lovelace la primera programadora.

Herman Hollerit (1860-1929) La oficina de censos estadounidense no termin el censo de 1880 sino hasta 1888. La direccin de la oficina ya haba llegado a la conclusin de que el censo de cada diez aos tardara mas que los mismo 10 aos para terminarlo. La oficina de censos comision al estadstico Herman Hollerit para que aplicara su experiencia en tarjetas perforadas y llevara a cabo el censo de 1890. Con el procesamiento de las tarjetas perforadas y el tabulador de tarjetas perforadas de Hollerit, el censo se termin en slo 3 aos y la oficina se ahorr alrededor de $5,000,000 de dlares. As empez el procesamiento automatizado de datos. Hollerit no tom la idea de las tarjetas perforadas del invento de Jackard, sino de la "fotografa de perforacin" Algunas lneas ferroviarias de la poca expedan boletos con descripciones fsicas del pasajero; los conductores hacan orificios en los boletos que describan el color de cabello, de ojos y la forma de nariz del pasajero. Eso le dio a Hollerit la idea para hacer la fotografa perforada de cada persona que se iba a tabular. Hollertih fund la Tabulating Machine Company y vendi sus productos en todo el mundo. La demanda de sus mquinas se extendi incluso hasta Rusia. El primer censo llevado a cabo en Rusia en 1897, se registr con el Tabulador de Hollerith. En 1911, la Tabulating Machine Company, al unirse con otras Compaas, form la Computing-Tabulating-Recording-Company.LAS MAQUINAS ELECTROMECNICAS DE CONTABILIDAD (MEC) Los resultados de las mquinas tabuladoras tenan que llevarse al corriente por medios manuales, hasta que en 1919 la Computing-Tabulating-Recording-Company. Anunci la aparicin de la impresora/listadora. Esta innovacin revolucion la manera en que las Compaas efectuaban sus operaciones. Para reflejar mejor el alcance de sus intereses comerciales, en 1924 la Compaa cambi el nombre por el de International Bussines Machines Corporation (IBM) Durante dcadas, desde mediados de los cincuentas la tecnologa de las tarjetas perforadas se perfeccion con la implantacin de ms dispositivos con capacidades ms complejas. Dado que cada tarjeta contena en general un registro (Un nombre, direccin, etc.) el procesamiento de la tarjeta perforada se conoci tambin como procesamiento de registro unitario.

La familia de las mquinas electromecnicas de contabilidad (EAM) eloctromechanical accounting machine de dispositivos de tarjeta perforada comprende: la perforadora de tarjetas, el verificador, el reproductor, la perforacin sumaria, el intrprete, el clasificador, el cotejador, el calculador y la mquina de contabilidad. El operador de un cuarto de mquinas en una instalacin de tarjetas perforadas tena un trabajo que demandaba mucho esfuerzo fsico. Algunos cuartos de mquinas asemejaban la actividad de una fbrica; las tarjetas perforadas y las salidas impresas se cambiaban de un dispositivo a otro en carros manuales, el ruido que produca eran tan intenso como el de una planta ensambladora de automviles.

Pioneros de la computacinATANASOFF Y BERRY Una antigua patente de un dispositivo que mucha gente crey que era la primera computadora digital electrnica, se invalid en 1973 por orden de un tribunal federal, y oficialmente se le dio el crdito a John V. Atanasoff como el inventor de la computadora digital electrnica. El Dr. Atanasoff, catedrtico de la Universidad Estatal de Iowa, desarroll la primera computadora digital electrnica entre los aos de 1937 a 1942. Llam a su invento la computadora Atanasoff-Berry, solo ABC (Atanasoff Berry Computer). Un estudiante graduado, Clifford Berry, fue una til ayuda en la construccin de la computadora ABC. Algunos autores consideran que no hay una sola persona a la que se le pueda atribuir el haber inventado la computadora, sino que fue el esfuerzo de muchas personas. Sin embargo en el antiguo edificio de Fsica de la Universidad de Iowa aparece una placa con la siguiente leyenda: "La primera computadora digital electrnica de operacin automtica del mundo, fue construida en este edificio en 1939 por John Vincent Atanasoff, matemtico y fsico de la Facultad de la Universidad, quien concibi la idea, y por Clifford Edward Berry, estudiante graduado de fsica." Mauchly y Eckert, despus de varias conversaciones con el Dr. Atanasoff, leer apuntes que describan los principios de la computadora ABC y verla en persona, el Dr. John W. Mauchly colabor con J.Presper Eckert, Jr. para desarrollar una mquina que calculara tablas de trayectoria para el ejrcito estadounidense. El producto final, una computadora electrnica completamente operacional a gran escala, se termin en 1946 y se llam ENIAC (Electronic Numerical Integrator And Computer), Integrador numrico y calculador electrnico. La ENIAC construida para aplicaciones de la Segunda Guerra mundial, se termin en 30 meses por un equipo de cientficos que trabajan bajo reloj. Fue el primer ordenador totalmente electrnico, estaba compuesta por 20.000 vlvulas de vaco, 70.000 resistores y 500.000 soldaduras hechas a mano. La unidad necesitaba 100 kw de electricidadLa ENIAC, mil veces ms veloz que sus predecesoras electromecnicas, irrumpi como un importante descubrimiento en la tecnologa de la computacin. Pesaba 30 toneladas y ocupaba un espacio de 450 mts cuadrados, llenaba un cuarto de 6 m x 12 m y contena 18,000 bulbos, tena que programarse manualmente conectndola a 3 tableros que contenan ms de 6000 interruptores. Ingresar un nuevo programa era un proceso muy tedioso que requera das o incluso semanas. A diferencia de las computadoras actuales que operan con un sistema binario (0,1) la ENIAC operaba con uno decimal (0,1,2..9). La ENIAC requera una gran cantidad de electricidad. La leyenda cuenta que la ENIAC, construida en la Universidad de Pensilvania, bajaba las luces de Filadelfia siempre que se activaba. La imponente escala y las numerosas aplicaciones generales de la ENIAC sealaron el comienzo de la primera generacin de computadoras. En 1945, John von Neumann, que haba trabajado con Eckert y Mauchly en la Universidad de Pensilvania, public un artculo acerca del almacenamiento de programas. El concepto de programa almacenado permiti la lectura de un programa dentro de la memoria de la computadora, y despus la ejecucin de las instrucciones del mismo sin tener que volverlas a escribir. La primera computadora en usar el citado concepto fue la la llamada EDVAC (Eletronic Discrete-Variable Automatic Computer, es decir computadora automtica electrnica de variable discreta), desarrollada por Von Neumann, Eckert y Mauchly. Los programas almacenados dieron a las computadoras una flexibilidad y confiabilidad tremendas, hacindolas ms rpidas y menos sujetas a errores que los programas mecnicos. Una computadora con capacidad de programa almacenado podra ser utilizada para varias aplicaciones cargando y ejecutando el programa apropiado. Hasta este punto, los programas y datos podran ser ingresados en la computadora slo con la notacin binaria, que es el nico cdigo que las computadoras "entienden". El siguiente desarrollo importante en el diseo de las computadoras fueron los programas intrpretes, que permitan a las personas comunicarse con las computadoras utilizando medios distintos a los nmeros binarios. En 1952 Grace Murray Hoper una oficial de la Marina de E.U., desarroll el primer compilador, un programa que puede traducir enunciados parecidos al ingls en un cdigo binario comprensible para la maquina llamado COBOL (Common Business-Oriented Languaje).

Generaciones de computadoras:Primera Generacin de Computadoras (de 1951 a 1958)

Las computadoras de la primera Generacin emplearon bulbos para procesar informacin. Los operadores ingresaban los datos y programas en cdigo especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rpidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnticas. Esas computadoras de bulbos eran mucho ms grandes y generaban ms calor que los modelos contemporneos. Eckert y Mauchly contribuyeron al desarrollo de computadoras de la 1era Generacin formando una Cia. privada y construyendo UNIVAC I, que el Comit del censo utiliz para evaluar el de 1950. La IBM tena el monopolio de los equipos de procesamiento de datos basndose en tarjetas perforadas y estaba teniendo un gran auge en productos como rebanadores de carne, bsculas para comestibles, relojes y otros artculos; sin embargo no haba logrado el contrato para el Censo de 1950.

Comenz entonces a construir computadoras electrnicas y su primera entrada fue con la IBM 701 en 1953. Despus de un lento pero excitante comienzo la IBM 701 se convirti en un producto comercialmente viable. Sin embargo en 1954 fue introducido el modelo IBM 650, el cual es la razn por la que IBM disfruta hoy de una gran parte del mercado de las computadoras. La administracin de la IBM asumi un gran riesgo y estim una venta de 50 computadoras. Este nmero era mayor que la cantidad de computadoras instaladas en esa poca en E.U. De hecho la IBM instal 1000 computadoras. El resto es historia. Aunque caras y de uso limitado las computadoras fueron aceptadas rpidamente por las Compaas privadas y de Gobierno. A la mitad de los aos 50 IBM y Remington Rand se consolidaban como lderes en la fabricacin de computadoras.

Segunda Generacin (1959-1964) Transistor Compatibilidad limitada El invento del transistor hizo posible una nueva generacin de computadoras, ms rpidas, ms pequeas y con menores necesidades de ventilacin. Sin embargo el costo segua siendo una porcin significativa del presupuesto de una Compaa. Las computadoras de la segunda generacin tambin utilizaban redes de ncleos magnticos en lugar de tambores giratorios para el almacenamiento primario. Estos ncleos contenan pequeos anillos de material magntico, enlazados entre s, en los cuales podan almacenarse datos e instrucciones. Los programas de computadoras tambin mejoraron. El COBOL desarrollado durante la 1era generacin estaba ya disponible comercialmente. Los programas escritos para una computadora podan transferirse a otra con un mnimo esfuerzo. El escribir un programa ya no requera entender plenamente el hardware de la computacin. Las computadoras de la 2da Generacin eran sustancialmente ms pequeas y rpidas que las de bulbos, y se usaban para nuevas aplicaciones, como en los sistemas para reservacin en lneas areas, control de trfico areo y simulaciones para uso general. Las empresas comenzaron a aplicar las computadoras a tareas de almacenamiento de registros, como manejo de inventarios, nmina y contabilidad. La marina de E.U. utiliz las computadoras de la Segunda Generacin para crear el primer simulador de vuelo. (Whirlwind I). HoneyWell se coloc como el primer competidor durante la segunda generacin de computadoras. Burroughs, Univac, NCR, CDC, HoneyWell, los ms grandes competidores de IBM durante los 60s se conocieron como el grupo BUNCH (siglas). Tercera Generacin (1964-1971) Circuitos integrados, Compatibilidad con equipo mayor , Multiprogramacin Minicomputadora Las computadoras de la tercera generacin emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrnicos, en una integracin en miniatura. Las computadoras nuevamente se hicieron ms pequeas, ms rpidas, desprendan menos calor y eran energticamente ms eficientes. Antes del advenimiento de los circuitos integrados, las computadoras estaban diseadas para aplicaciones matemticas o de negocios, pero no para las dos cosas. Los circuitos integrados permitieron a los fabricantes de computadoras incrementar la flexibilidad de los programas, y estandarizar sus modelos. La IBM 360 una de las primeras computadoras comerciales que us circuitos integrados, poda realizar tanto anlisis numricos como administracin procesamiento de archivos. Los clientes podan escalar sus sistemas 360 a modelos IBM de mayor tamao y podan todava correr sus programas actuales. Las computadoras trabajaban a tal velocidad que proporcionaban la capacidad de correr ms de un programa de manera simultnea (multiprogramacin). Por ejemplo la computadora podia estar calculando la nomina y aceptando pedidos al mismo tiempo. Minicomputadoras, Con la introduccin del modelo 360 IBM acapar el 70% del mercado, para evitar competir directamente con IBM la empresa Digital Equipment Corporation DEC redirigi sus esfuerzos hacia computadoras pequeas. Mucho menos costosas de comprar y de operar que las computadoras grandes, las minicomputadoras se desarrollaron durante la segunda generacin pero alcanzaron su mayor auge entre 1960 y 70.

La cuarta Generacin (1971 a la fecha) Microprocesador, Chips de memoria, Microminiaturizacin Dos mejoras en la tecnologa de las computadoras marcan el inicio de la cuarta generacin: el reemplazo de las memorias con ncleos magnticos, por las de chips de silicio y la colocacin de muchos ms componentes en un Chip: producto de la microminiaturizacin de los circuitos electrnicos. El tamao reducido del microprocesador de chips hizo posible la creacin de las computadoras personales. (PC) Hoy en da las tecnologas LSI (Integracin a gran escala) y VLSI (integracin a muy gran escala) permiten que cientos de miles de componentes electrnicos se almacenan en un chip. Usando VLSI, un fabricante puede hacer que una computadora pequea rivalice con una computadora de la primera generacin que ocupara un cuarto completo. Lenguajes de Programacina) Historia de los lenguajes; Los lenguajes de programacin cierran el abismo entre las computadoras, que slo trabajan con nmeros binarios, y los humanos, que preferimos utilizar palabras y otros sistemas de numeracin.Mediante los programas se indica a la computadora qu tarea debe realizar y como efectuarla, pero para ello es preciso introducir estas ordenes en un lenguaje que el sistema pueda entender. En principio, el ordenador slo entiende las instrucciones en cdigo mquina, es decir, el especfico de la computadora. Sin embargo, a partir de stos se elaboran los llamados lenguajes de alto y bajo nivel.

b) Generaciones de los lenguajes

LENGUAJES DE BAJO NIVEL:Utilizan cdigos muy cercanos a los de la mquina, lo que hace posible la elaboracin de programas muy potentes y rpidos, pero son de difcil aprendizaje. LENGUAJES DE ALTO NIVEL: Por el contrario, son de uso mucho ms fcil, ya que en ellos un solo comando o instruccin puede equivaler a millares es cdigo mquina. El programador escribe su programa en alguno de estos lenguajes mediante secuencias de instrucciones. Antes de ejecutar el programa la computadora lo traduce a cdigo mquina de una sola vez (lenguajes compiladores) o interpretndolo instruccin por instruccin (lenguajes intrpretes). Ejemplos de lenguajes de alto nivel: Pascal, Cobol, Basic, Fortran, C++ Un Programa de computadora, es una coleccin de instrucciones que, al ser ejecutadas por el CPU de una mquina, llevan a cabo una tarea funcin especfica. Este conjunto de instrucciones que forman los programas son almacenados en archivos denomina dos archivos ejecutables puesto que, al teclear su nombre (o hacer clic sobre el icono que los identifica) logras que la computadora los cargue y corra, o ejecute las instrucciones del archivo. El contenido de un archivo ejecutable no puede ser entendido por el usuario, ya que no est hecho para que la gente lo lea, sino para que la computadora sea quien lo lea. Los archivos de programas ejecutables contienen el cdigo mquina, que la CPU identifica como sus instrucciones. Son lo que conocemos como Programas Objeto. Dado que sera muy difcil que los programadores crearan programas directamente en cdigo de mquina, usan lenguajes ms fciles de leer, escribir y entender para la gente.El programador teclea instrucciones en un editor, que es un programa parecido a un simple procesador de palabras, estas instrucciones son almacenadas en archivos denominados programas fuentes (cdigo fuente). Si los programadores necesitan hacer cambios al programa posteriormente vuelven a correr el editor y cargan el programa fuente para modificarlo.El proceso de conversin de programas fuente a programas objeto se realiza mediante un programa denominado compilador. El compilador toma un programa fuente y lo traduce a programa objeto y almacena este ltimo en otro archivo.

PROGRAMA FUENTE:Es el programa escrito en alguno de los lenguajes y que no ha sido traducido al lenguaje de la maquina, es decir el programa que no est en cdigo de mquina y que por lo tanto no puede ser ejecutable. PROGRAMA OBJETO:Es aquel programa que se encuentra en lenguaje mquina y que ya es ejecutable por esta. c) Programacin Orientada a Objetos: La programacin orientada a objetos no es un concepto nuevo, sus inicios y tcnicas de programacin se iniciaron a principios de los 70. Se puede definir programacin orientada a objetos (OOPS) como una tcnica de programacin que utiliza objetos como bloque esencial de construccin. La OOPS, es un tipo de programacin ms cercana al razonamiento humano. La OOPS surge como una solucin a la programacin de grandes programas, y para solventar el mantenimiento de dichas aplicaciones, ya que en la programacin estructura el ms mnimo cambio supone la modificacin de muchas funciones relacionadas, en cambio con la OOPS solo es cuestin de aadir o modificar mtodos de una clase o mejor, crear una nueva clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto para programar de esta forma, Smalltalk y C++. Concepto de Objeto: Desde un punto de vista general un Objeto es una estructura de datos de mayor o menor complejidad con las funciones que procesan estos datos. Dicho de otra forma, sera Datos ms un Cdigo que procesa estos datos. A los datos se les denomina miembros dato y a la funcin miembro o miembro funciones. Los datos estn ocultos y slo se puede acceder a ellos mediante la funcin miembro. Clases: Las Clases son como plantillas o modelos que describen como se construyen ciertos tipos de Objeto. Cada vez que se construye un Objeto de una Clase, se crea una instancia de esa Clase("instance"). Una Clase es una coleccin de Objetos similares y un Objeto es una instancia de una Clase. Se puede definir una Clase como un modelo que se utiliza para describir uno o ms Objetos del mismo tipo. Herencia: Una caracterstica muy importante de los Objetos y las Clases es la Herencia, una propiedad que permite construir nuevos Objetos (Clases) a partir de unos ya existentes. Esto permite crear "Sub-Clases" denominadas Clases Derivadas que comparten las propiedades de la Clase de la cual derivan (Clase base). Las Clases derivadas heredan cdigo y datos de la clase base, asimismo incorporan su propio cdigo y datos especiales. Se puede decir que la herencia permite definir nuevas Clases a partir de las Clases ya existentes. Polimorfismo: En un sentido literal, Polimorfismo significa la cualidad de tener ms de una forma. En el contexto de POO, el Polimorfismo se refiere al hecho de que una simple operacin puede tener diferente comportamiento en diferentes objetos. En otras palabras, diferentes objetos reaccionan al mismo mensaje de modo diferente. Los primeros lenguajes de POO fueron interpretados, de forma que el Polimorfismo se contemplaba en tiempo de ejecucin. Por ejemplo, en C++, al ser un lenguaje compilado, el Polimorfismo se admite tanto en tiempo de ejecucin como en tiempo de compilacinDecimos entonces que: El tema de la Programacin Orientada a Objetos (Object Oriented Programming O-O-P) sigue siendo para el que escribe un territorio inquietante, interesante y en gran medida desconocido, como parece ser tambin para la gran mayora de los que estamos en el campo de la programacin. Sin tratar de excluir a aquellos que han afrontado este desarrollo desde el punto de vista acadmico y formal (maestras y doctorados) el tema se antoja difcil para los no iniciados. Con este breve artculo me dirigir en particular a la gran base de programadores prcticos que andamos en bsqueda de mejores herramientas de desarrollo de programas, que faciliten el trabajo de nuestros usuarios y a la vez disminuyan la gran cantidad de considerandos que aparecen al empearnos en un proyecto de cmputo.Como muchos de ustedes, me top con el concepto de O-O-P como parte de esa bsqueda y al explorarlo apareci el gusanillo de la curiosidad. A lo largo de mi actividad como programador, y cuando se dio la necesidad, no tuve ningn problema en convertir mis habilidades de programacin en FORTRAN de IBM 1130 al BASIC de la PDP, pues slo era cuestin de aprender la sintaxis del lenguaje, ya que las estrategias de programacin y los algoritmos eran iguales. Posteriormente, al manejar el PASCAL se requiri un importante esfuerzo en entender la filosofa de las estructuras, lo cual modificaba la manera de ver (conceptualizar) a los datos y a las partes constitutivas de un programa.Posteriormente aparece el QuickBasic, que adopt inmediatamente por la familiaridad con el BASIC (ley del menor esfuerzo). Ofreca estructuras de datos (tipos y registros complejos), adems de estructuras de instrucciones en procedimientos y mdulos; editor "inteligente" que revisa la sintaxis y ejecucin de las instrucciones mientras se edita el programa, generacin de ejecutable una vez terminado (.EXE), existencia de bibliotecas externas y enlace con mdulos objeto generados en otro lenguaje. Qu ms poda yo pedir?Pero la necesidad de estar en la ola de moda es ms fuerte que el sentido comn. Las aplicaciones en Windows siempre han despertado la envidia de los programadores, al hacer ver sus programas plidos e insulsos por comparacin. Solucin: programar en Windows.Originalmente programar en Windows representaba un largo y tedioso camino para dominar las complejas herramientas de desarrollo. Slo recientemente han aparecido desarrolladores de aplicaciones para Windows que le permiten al programador pintar sus ventanas y realizar los enlaces entre los objetos con programacin tradicional, evitando en gran medida involucrarse con los conceptos complicados de los objetos. Sin embargo no dejaron de inquietarme algunos conceptos marcados por O-O-P, segn los cuales sern los pilares del futuro de la programacin de componentes y de objetos distribuidos en redes, en donde la actual programacin cliente/servidor pareciera por comparacin el FORTRAN o el COBOL de ahora.Pidiendo perdn de antemano a los puristas de las definiciones y conceptos de O-O-P, expondr el resultado de mis propias indagaciones sobre este campo, esperando que al paciente lector y posible programador le resulte menos complicado que a m asimilar los elementos bsicos de O-O-P.Los principales conceptos que se manejan en la Programacin Orientada a Objetos son: 1. encapsulado, 2. herencia y 3. Polimorfismo.Segn esto, la encapsulacin es la creacin de mdulos autosuficientes que contienen los datos y las funciones que manipulan dichos datos. Se aplica la idea de la caja negra y un letrero de "prohibido mirar adentro". Los objetos se comunican entre s intercambiando mensajes. De esta manera, para armar aplicaciones se utilizan los objetos cuyo funcionamiento est perfectamente definido a travs de los mensajes que es capaz de recibir o mandar. Todo lo que un objeto puede hacer est representado por su interfase de mensajes. Para crear objetos, el programador puede recurrir a diversos lenguajes como el C++, el Smalltalk, el Visual Objects y otros. Si se desea solamente utilizar los objetos y enlazarlos en una aplicacin por medio de la programacin tradicional se puede recurrir al Visual Basic, al CA-Realizer, al Power Builder, etc.El concepto de herencia me pareci sencillo de entender una vez que capt otro concepto de O-O-P: las clases. En O-O-P se acostumbra agrupar a los objetos en clases. Esto es muy comn en la vida diaria. Todos nosotros tendemos a clasificar los objetos comunes por clases. Manejamos la clase mueble, la clase mascota, la clase alimento, etc. Obviamente en el campo de la programacin esta clasificacin es ms estricta. Cul es el sentido de las clases? Fundamentalmente evitar definir los objetos desde cero y facilitar su rehuso. Si trabajamos con clases, al querer definir un nuevo objeto, partimos de alguna clase definida anteriormente, con lo que el objeto en cuestin hereda las caractersticas de los objetos de su clase. Imaginemos que creamos una clase "aves" y describimos las caractersticas de las aves (plumas, pico, nacen de huevo, etc.). Ms adelante necesitamos una clase "pingino". Como pertenece a "aves" no requerimos volver a declarar lo descrito sino marcamos que "pingino" es una subclase de "aves" con lo que "pingino" hereda todas sus caractersticas. A continuacin slo declaramos los detalles que determinan lo que distingue a "pingino" de "aves". Asimismo podemos declarar "emperador" como una subclase de "pingino", con lo que "emperador" heredar todas las caractersticas de las superclases "pingino" y "aves" ms las caractersticas que nosotros declaremos en particular para "emperador". En un programa (imaginario por supuesto) yo puedo utilizar estas clases (aves, pingino y emperador). El hecho de colocar a un individuo en particular en estas clases es lo que se llama objeto y se dice que es una instancia de una clase. As, si yo coloco a Fredy (un pingino emperador) en mi programa, se dice que el objeto Fredy es una instancia de la clase emperador. Fredy aparecer en mi programa con todas las caractersticas (herencia) de aves, de pingino y de emperador.Por otra parte, entender el concepto de Polimorfismo implic un buen nmero de horas de indagacin y bsqueda de ejemplos. Espero que ste resulte claro: supngase que declaramos un objeto llamado Suma. Este objeto requiere dos parmetros (o datos) como mensaje para operar. En la programacin tradicional tendramos que definir el tipo de datos que le enviamos, como por ejemplo dos nmeros enteros, dos nmeros reales, etc. En O-O-P el tipo de dato se conoce hasta que se ejecuta el programa.

d) COMPILADOR: Es un programa que traduce un lenguaje de alto nivel al lenguaje mquina. Un programa compilado indica que ha sido traducido y est listo para ser ejecutado. La ejecucin de los programas compilados es ms rpida que la de los interpretados, ya que el interprete debe traducir mientras est en la fase de ejecucin (saca todos los errores). Un compilador es un programa que traduce el programa fuente (conjunto de instrucciones de un lenguaje de alto nivel, por ejemplo BASIC o Pascal) a programa objeto (instrucciones en lenguaje mquina que la computadora puede interpretar y ejecutar). Se requiere un compilador para cada lenguaje de programacin. Un compilador efecta la traduccin, no ejecuta el programa. Una vez compilado el programa, el resultado en forma de programa objeto ser directamente ejecutable. Presentan la ventaja considerable frente a los intrpretes de la velocidad de ejecucin, por lo que su uso ser mejor en aquellos programas probados en los que no se esperan cambios y que deban ejecutarse muchas veces. En caso de que se opte por un interpretador se debe considerar que el intrprete resida siempre en memoria. INTERPRETE: Traductor de lenguajes de programacin de alto nivel, los interpretes ejecutan un programa lnea por lnea. El programa siempre permanece en su forma original (programa fuente) y el interprete proporciona la traduccin al momento de ejecutar cada una de la s instrucciones. Un intrprete es un programa que procesa los programas escritos en un lenguaje de alto nivel, sin embargo, est diseado de modo que no existe independencia entre la etapa de traduccin y la etapa de ejecucin. Un intrprete traduce cada instruccin o sentencia del programa escrito a un lenguaje mquina e inmediatamente se ejecuta. Encuentran su mayor ventaja en la interaccin con el usuario, al facilitar el desarrollo y puesta a punto de programas, ya que los errores son fciles de detectar y sobre todo de corregir.LENGUAJE MQUINA: Lenguaje original de la computadora, un programa debe estar escrito en el lenguaje de la mquina para poder ser ejecutado. Este es generado por software y no por el programador. El programador escribe en un lenguaje de programacin, el cual es traducido al lenguaje de mquina mediante interpretes y compiladores.

e) Case: (Computer-Aided Software Engineering o Computer- Aided Systems Engineering) Ingeniera de Software Asistida por Computadora o Ingeniera de Sistemas Asistida por computadora Software que se utiliza en una cualquiera o en todas las fases del desarrollo de un sistema de informacin, incluyendo anlisis, diseo y programacin. Por ejemplo, los diccionarios de datos y herramientas de diagramacin ayudan en las fases de anlisis y diseo, mientras que los generadores de aplicaciones aceleran la fase de programacin.Las herramientas CASE proporcionan mtodos automticos para disear y documentar las tcnicas tradicionales de programacin estructurada. La meta ltima de CASE es proveer un lenguaje para describir el sistema completo, que sea suficiente para generar todos los programas necesarios. Sistemas OperativosUn sistema Operativo (SO) es en s mismo un programa de computadora. Sin embargo, es un programa muy especial, quiz el ms complejo e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el tecla do, el sistema de vdeo y las unidades de disco. Adems, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicacin.Cuando enciendes una computadora, lo primero que sta hace es llevar a cabo un autodiagnstico llamado autoprueba de encendido (Power On Self Test, POST). Durante la POST, la computadora identifica su memoria, sus discos, su teclado, su sistema de vdeo y cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot). Una vez que la computadora ha puesto en marcha su SO, mantiene al menos parte de ste en su memoria en todo momento. Mientras la computadora est encendida, el SO tiene 4 tareas principales:1. Proporcionar ya sea una interfaz de lnea de comando o una interfaz grfica al usuario, para que este ltimo se pueda comunicar con la computadora. Interfaz de lnea de comando: t introduces palabras y smbolos desde el teclado de la computadora, ejemplo, el MS-DOS. Interfaz grfica del Usuario (GUI), seleccionas las acciones mediante el uso de un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los mens.

2. Administrar los dispositivos de hardware en la computadora Cuando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, mdems, etc). El SO sirve de intermediario entre los programas y el hardware.

3. Administrar y mantener los sistemas de archivo de disco Los SO agrupan la informacin dentro de compartimientos lgicos para almacenarlos en el disco. Estos grupos de informacin son llamados archivos. Los archivos pueden contener instrucciones de programas o informacin creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos.

4. Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como "llamadas del sistema" El Kernel y el Shell. Las funciones centrales de un SO son controladas por el ncleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte ms importante del DOS es un programa con el nombre "COMMAND.COM" Este programa ti ene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el cdigo mquina de bajo nivel para manejar la administracin de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos.Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos estn separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando carga s Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de lnea de comandos con una interfaz grfica del usuario. Existen muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado DOS SHELL.CATEGORAS DE SISTEMAS OPERATIVOSMULTITAREA: El trmino multitarea se refiere a la capacidad del SO para correr mas de un programa al mismo tiempo. Existen dos esquemas que los programas de sistemas operativos utilizan para desarrollar SO multitarea, el primero requiere de la cooperacin entre el SO y los programas de aplicacin.Los programas son escritos de tal manera que peridicamente inspeccionan con el SO para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces dejan el control del CPU al siguiente programa, a este mtodo se le llama multitarea cooperativa y es el mtodo utilizado por el SO de las computadoras de Machintosh y DOS corriendo Windows de Microsoft. El segundo mtodo es el llamada multitarea con asignacin de prioridades. Con este esquema el SO mantiene una lista de procesos (programas) que estn corriendo. Cuando se inicia cada proceso en la lista el SO le asigna una prioridad. En cualquier momento el SO puede intervenir y modificar la prioridad de un proceso organizando en forma efectiva la lista de prioridad, el SO tambin mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir al siguiente. Con multitarea de asignacin de prioridades el SO puede sustituir en cualquier momento el proceso que esta corriendo y reasignar el tiempo a una tarea de mas prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea. MULTIUSUARIO: Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO tambin debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario ms utilizado. Debido a que Unix fue originalmente diseado para correr en una minicomputadora, era multiusuario y multitarea desde su concepcin.Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple tambin produce una versin de Unix para la Machintosh llamada: A/UX.Unix Unix proporciona tres maneras de permitir a mltiples personas utilizar la misma PC al mismo tiempo. 1) Mediante Mdems. 2) Mediante conexin de terminales a travs de puertos seriales 3) Mediante Redes. MULTIPROCESO: Las computadoras que tienen ms de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de las computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instruccin, el otro procesador queda liberado para procesar otras instrucciones simultneamente.Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimtrico: Una CPU principal retiene el control global de la computadora, as como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la direccin ideal a seguir ya que la CPU principal poda convertirse en un cuello de botella. Multiproceso simtrico: En un sistema multiproceso simtrico, no existe una CPU controladora nica. La barrera a vencer al implementar el multiproceso simtrico es que los SO tienen que ser rediseados o diseados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimtrico ya estn disponibles y las extensiones simtricas se estn haciendo disponibles. Windows NT de Microsoft soporta multiproceso simtrico.

Lista de los Sistemas Operativos ms comunes.MS-DOS: Es el ms comn y popular de todos los Sistemas Operativos para PC. La razn de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel.Cuando Intel liber el 80286, D OS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayora del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran xito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacan. OS/2: Despus de la introduccin del procesador Intel 80286, IBM y Microsoft reconocieron la necesidad de tomar ventaja de las capacidades multitarea de esta CPU. Se unieron para desarrollar el OS/2, un moderno SO multitarea para los microprocesadores Intel. < BR>Sin embargo, la sociedad no dur mucho. Las diferencias en opiniones tcnicas y la percepcin de IBM al ver a Windows como una amenaza para el OS/2 caus una desavenencia entre las Compaas que al final las llev a la disolucin de la sociedad.IBM continu el desarrollo y promocin del OS/2.Es un sistema operativo de multitarea para un solo usuario que requiere un microprocesador Intel 286 o mejor. Adems de la multitarea, la gran ventaja de la plataforma OS/2 es que permite manejar directamente hasta 16 MB de la RAM (en comparacin con 1 MB en el caso del MS-DOS). Por otra parte, el OS/2 es un entorno muy complejo que requiere hasta 4 MB de la RAM. Los usuarios del OS/2 interactan con el sistema mediante una interfaz grfica para usuario llamada Administrador de presentaciones. A pesar de que el OS/2 rompe la barrera de 1 MB del MS-DOS, le llevo tiempo volverse popular. Los vendedores de software se muestran renuentes a destinar recursos a la creacin de un software con base en el OS/2 para un mercado dominado por el MS-DOS. Los usuarios se rehsan a cambiar al OS/2 debido a la falta de software que funcione en la plata forma del OS/2 y a que muchos tendran que mejorar la configuracin de su PC para que opere con el OS/2. UNIX: Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo.Es un sistema operativo que fue creado a principios de los setentas por los cientficos en los laboratorios Bell. Fue especficamente diseado para proveer una manera de manejar cientfica y especializadamente las aplicaciones computacionales. Este SO se adapto a los sistemas de cmputo personales as que esta aceptacin reciente lo convierte en un sistema popular.. Unix es ms antiguo que todos los dems SO de PC y de muchas maneras sirvi como modelo para stos. Aun cuando es un SO extremadamente slido y capaz, la lnea de comandos Unix, no es apta para cardiacos, debido a que ofrece demasiados comandos. SISTEMA OPERATIVO DE MACINTOSH: La Macintosh es una mquina netamente grfica. De hecho, no existe una interfaz de lnea de comando equivalente para sta. Su estrecha integracin de SO, GUI y rea de trabajo la hacen la favorita de la gente que no quiere saber nada de interfaces de lnea de comando.Las capacidades grficas de la Macintosh hicieron de esa mquina la primera precursora en los campos grficos computarizados como la autoedicin por computadora.La familia de microcomputadoras de Apple Macintosh y su sistema operativo define otra plataforma importante. Las PC de Macintosh, que se basan en la familia de microprocesadores de Motorola, usan la arquitectura de Bus de 32 bits. La plataforma para Macintosh incluye muchas capacidades sofisticadas que comprende la multitarea, una GUI, la memoria virtual y la capacidad para emular la plataforma MS-DOS. Las PC de Macintosh tambin tiene la capacidad integrada de compartir archivos y comunicarse con o tras PC de Macintosh en una red. WINDOWS NT DE MICROSOFT: Con Windows NT, Microsoft ha expresado su dedicacin a escribir software no slo para PC de escritorio sino tambin para poderosas estaciones de trabajo y servidores de red y bases de datos. Microsoft Windows NT no es necesariamente un sustituto de DOS ni una nueva versin de ste; es, en conjunto, un nuevo SO diseado desde sus bases para las mquinas ms modernas y capaces disponibles.Windows NT de Microsoft ofrece caractersticas interconstruidas que ningn otro SO para PC ofrece, con excepcin de Unix.Adems de las caractersticas tradicionales de estricta seguridad de sistema, red interconstruida, servicios de comunicacin y correo electrnico interconstruidos, herramientas de administracin y desarrollo de sistema y una GUI, Windows NT puede correr directamente aplicaciones de Windows de Microsoft y de Unix. Windows NT, al igual que el OS/2 ver 2.0 y algunas versiones de Unix, es un SO de 32 bits, que puede hacer completo uso de los procesadores de estas caractersticas.Adems de ser multitarea, est diseado para tomar ventaja del multiproceso simtrico.