You are on page 1of 20

HISTORIA DE LA PROGRAMACIN

BELKIS BUELVAS CASTILLO ETUDIANTE

JUAN SALVADOR NORIEGA MADRID DOCENTE

PROGRAMCION I

UNIVERSIDADA TECNOLOGICA DE BOLIVAR 15 DE SEPTIEMBRE DE 2011

HISTORIA DE LA PROGRAMACIN

Un lenguaje de programacin es una notacin para escribir programas, a travs de los cuales podemos comunicarnos con el hardware y dar as las rdenes adecuadas para la realizacin de un determinado proceso. Un lenguaje esta definido por una gramtica o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de smbolos utilizados. Los distintos niveles de programacin existentes nos permiten acceder al hardware, de tal forma que segn utilicemos un nivel u otro, as tendremos que utilizar un determinado lenguaje ligado a sus correspondientes traductores. Un lenguaje le da la capacidad al programador de especificarle al computador, qu tipo de datos actan y que acciones tomar bajo una variada gama de circunstancias, utilizando un lenguaje relativamente prximo al lenguaje humano. Los primeros lenguajes de programacin surgieron de la idea de Charles Babagge. Profesor matemtico de la universidad de Cambridge e inventor ingles, quien a la principio del siglo XIX predijo muchas de las teoras en que se basan los actuales ordenadores. Consista en lo que l denominaba la maquina analtica, pero que por motivos tcnicos no pudo construirse hasta mediados del siglo XX. Con l colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aqulla supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lgicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programacin, sobre todo si observamos que en cuanto se empez a programar, los programadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada, que consistan entre otras, en la programacin mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antao, se adelantaron un siglo a su poca, lo cual describe la inteligencia de la que se hallaban dotados. Sin embargo las primeras computadoras mecnicas y elctricas no contaban con un lenguaje de programacin tal como lo conocemos ahora, la mayora de ellas era construida para llevar a cabo una tarea especfica; por lo tanto la forma de programarla era particular a cada computadora. Cuando surgi el primer ordenador en la Universidad de Pennsylvania, el famoso ENIAC (Electronic Numerical Integrator And Calculator), cuyo equipo de diseo lo encabezaron los ingenieros John Mauchly y John Eckert. La primera computadora electrnica, su programacin se basaba en componentes fsicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, exactamente lo que s hacia era cambiar cables de sitio para

conseguir as la programacin de la maquina; la entrada y salida de datos se realizaba mediante tarjetas perforadas. El proyecto, auspiciado por el departamento de Defensa de los Estados Unidos, culmin dos aos despus, cuando se integr a ese equipo el ingeniero y matemtico John von Neumann. Quien fascinado por las posibilidades de ENIAC, elabor un estudio que demostr que una computadora poda tener una estructura fsica muy simple y fija, y aun as ser capaz de ejecutar cualquier tipo de programa mediante un control correcto, sin la necesidad de modificar la computadora para esto. La idea fundamental de von Neumann fue: permitir que en la memoria coexistan datos con instrucciones, para que la computadora pueda ser programada en un lenguaje, y no por medio de alambres que elctricamente interconectaban varias secciones de control, como en la ENIAC.

A partir de esta innovacin de Von Neunmann es considerado el padre de las computadoras, que en conjunto se conoce como la tcnica de programa almacenado, se inicia la era de los lenguajes de programacin. Que abarc la dcada de los cincuenta, Y se conoce como la primera generacin. Las mquinas eran construidas por medio de tubos al vaco y programadas en lenguaje de mquina. El lenguaje maquina, ordena las operaciones fundamentales para el funcionamiento del computador. Consiste en la combinacin de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. El ordenador slo entiende un lenguaje conocido como cdigo binario o cdigo mquina. Los lenguajes de bajo nivel, son lenguajes totalmente dependientes de la mquina; es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Por lo que se emplea el lenguaje ensamblador, un derivado del lenguaje maquina y esta formado por abreviaturas de letras y nmeros llamadas mnemotcnicos. Con la aparicin de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje mquina. Como ventaja con respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prcticamente las mismas que las del lenguaje ensamblador, adiendo la dificultad de tener que aprender un nuevo lenguaje difcil de probar y mantener. Posteriormente, cerca de la dcada de 1960, donde se define la segunda generacin, las computadoras seguan evolucionando, se reduca su tamao y creca su capacidad de procesamiento. Tambin en esta poca se empez a definir la forma de comunicarse entre ellas, recibiendo el nombre de

programacin de sistemas. Teniendo como principal caracterstica, las construidas con circuitos de transistores, donde surge la programacin en nuevos lenguajes llamados lenguajes de alto nivel ( COBOL , FORTRAN, LISP, ALGOL, ect.) En esta generacin aparecen diversas compaas y las computadoras eran bastante avanzadas para su poca como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Algunas de stas se programaban con cintas perforadas y otras por medio de cableado en un tablero. Los programas eran hechos a la medida por un equipo de expertos: analistas, diseadores, programadores y operadores que se manejaban como una orquesta para resolver los problemas y clculos solicitados por la administracin. El usuario final de la informacin no tena contacto directo con las computadoras. En las dos primeras generaciones, las unidades de entrada utilizaban tarjetas perforadas, retomadas por Herman Hollerith, quien adems fund una compaa que con el paso del tiempo se conocera como IBM (International Bussines Machine).

Shortcode, En 1949, aparece el primer lenguaje que se us en computadoras electrnicas: Shortcode, requera que el programador convirtiera (compilara) su programa a 0's y 1's de manera manual. Posteriormente, A-0, hasta el ao de 1951, que Grace Hopper trabajando para Remington Rand, comienza a desarrollar el primer compilador, lo que trajo consigo una programacin ms rpida. Fortran, en el ao de 1957 cuando aparece el primero de los grandes lenguajes de programacin de uso an actualmente: FORTRAN, que proviene de FORmula TRANslating system. Fue desarrollado por IBM para cmputo cientfico, el lder del proyecto fue John Backus, que despus contribuira en ALGOL. El lenguaje original solo inclua FOR, DO y GOTO. Tambin defini los tipos de datos bsicos: TRUE, FALSE, integer, real, double presicion. Pero el lenguaje original era bueno manejando nmeros, pero malo manejando entrada y salida, lo cual propicio la aparicin de otros lenguajes orientados a negocios. LISP, En el ao de 1958, el profesor John McCarthy[4] del M.I.T. comenz a desarrollar la teora de un lenguaje de de procesamiento de listas. En 1959 aparece pblicamente la primera implementacin llamada LISP 1.5. En 1960 McCarthy publica un histrico artculo acerca de los fundamentos de LISP que

hizo por la programacin lo mismo que hizo Euclides por la geometra, demostrar como con unos cuantos operadores y una notacin para funciones es posible construir un lenguaje de programacin completo. Es importante hacer notar que McCarthy no solo marco un hito en la historia los lenguajes de programacin sino que creo un modelo de programacin que ha demostrado ser superior, tanto que podemos decir que en la actualidad existen dos grandes modelos de programacin el de C y el de Lisp, y podemos notar que los lenguajes del modelo C tratan de parecerse cada vez mas a Lisp. ALGOL, En el ao de 1958 un comit crea la especificacin del lenguaje ALGOL, tenia la particularidad de no definir la manera de manejar entrada y salida, dejando esta parte libre a cada implementacin. Es en 1960 cuando aparece el lenguaje ALGOL 6.0 el primer lenguaje estructurado en bloques; este lenguaje fue muy popular en el segundo lustro de los 60's.Su principal contribucin es ser la raz del rbol que ha producido lenguajes tales como pascal, C, C++, y Java. COBOL, En 1959, Conference on Data Systems and Languages (CODASYL) crea COBOL, un lenguaje para negocios; que fuera fcil de aprender para gente que no tuviera formacin en ciencias de la computacin. Sus nicos tipos de datos fueron cadenas y nmeros. Lo que le dio la caracterstica de poder agruparlos en arreglos sencillos, de modo que los datos podan ser organizados y seguidos de una mejor manera. Las sentencias de COBOL se parecen mucho a las usadas por el idioma ingls, haciendo que fuera fcil de aprender. Todo esto con la finalidad de que los negocios promedio lo pudieran aprender y usar.

Los lenguajes ms prximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel, son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina, estn dirigidos a solucionar problemas mediante el uso de EDD's. Estructuras Dinmicas de Datos siendo estructuras capases de cambiar de tamao durante la ejecucin del programa. Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una mquina a otra sin ningn tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquinas para la que estn diseando el

programa. Tan solo necesitan un traductor que entiendan el cdigo fuente como las caractersticas de la maquina. Suelen usar tipos de datos para la programacin y hay lenguajes de propsito general (cualquier tipo de aplicacin) y de propsito especifico (como FORTRAN para trabajos cientficos).

De igual forma nos encontramos con los lenguajes de medio nivel, siendo un trmino no aceptado por todos, pero estos lenguajes se encuentran en un punto medio entre el bajo y el alto nivel. Suelen ser clasificados de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creacin de sistemas operativos, ya que permiten un manejo abstracto (independiente de la mquina, a diferencia del lenguaje ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel; dentro de estos lenguajes podra situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas caractersticas de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. Una de las caractersticas ms peculiares del lenguaje de programacin C es el uso de apuntadores, los cuales son muy tiles en la implementacin de algoritmos como listas enlazadas, tablas hash y algoritmos de bsqueda y ordenamiento que para otros lenguajes de programacin (como en el lenguaje de programacin Java, por ejemplo) suelen ser un poco ms complicados de implementar. Posteriormente, con los progresos de la electrnica y los avances de comunicacin en la dcada de 1960, surge la tercera generacin de las computadoras. Caracterizndose por su fabricacin electrnica, basada en circuitos integrados y por el manejo por medio de los lenguajes de control de los sistemas operativos. A finales de la dcada de 1960, aparecen en el mercado las computadoras de tamao mediano, o mini computadoras que no son tan costosas como las grandes (llamadas tambin como mainframes que significa, gran sistema), pero disponen de gran capacidad de procesamiento. Algunas mini computadoras fueron las siguientes: la PDP - 8 y la PDP - 11 de Digital Equipment Corporation, la VAX (Virtual Address eXtended) de la misma compaa, los modelos NOVA y ECLIPSE de Data General, la serie 3000 y 9000 de Hewlett Packard con varios modelos. La IBM produjo la serie 360 y 370. Estando presente, lenguajes de alto nivel como es el caso de C, Pascal, Cobol

Basic, Inventado en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Colegio Dartmounth. Es un lenguaje muy limitado que fue diseado para personas que no fueran del rea de ciencias de la computacin; el nombre de BASIC, significa Beginners All-purpose Symbolic Instruction Code. Los ocho

principios de diseo de BASIC fueron: ser fcil de usar para los principiantes, ser un lenguaje de propsito general, permitir que los expertos aadieran caractersticas avanzadas; mientras que el lenguaje permaneca simple para los principiantes, ser interactivo, proveer mensajes de error claros y amigables; responder rpido a los programas pequeos y por ultimo, no requerir de un conocimiento del hardware de la computadora. Este lenguaje es baso en Fortran y Algol 6.0

Pascal, diseado por Niklaus Wirth, como una herramienta de enseanza de la programacin. Sus desarrolladores se concentraron en desarrollar buenas herramientas que contribuyeran a la enseanza, tal como un buen debugger, y un buen editor. Adems tuvieron como meta el tener soporte para la mayora de los microprocesadores populares en esa poca en las instituciones de enseanza. Fue diseado de una manera muy ordenada, reflejando la experiencia de su diseador, tomo las mejores caractersticas de los lenguajes de su tiempo, COBOL, ALGOL, y FORTRAN, al mismo tiempo que busco evitar sus deficiencias, y hacerlo lo mas claro posible. La combinacin de sus caractersticas de entrada/salida, y sus solidas caractersticas matemticas pronto lo convirtieron en un lenguaje muy exitoso. Tambin implemento el tipo apuntador y agrego el CASE, e hizo uso de variables dinmicas. Sin embargo no implemento arreglos dinmicos ni agrupamiento de variables lo cual contribuyo a su perdida de popularidad frente a nuevos lenguajes. Delphi es una versin moderna y orientada a objetos de Pascal. Prolog, diseado en 1970 en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel, su nombre proviene del frances Programation et Logique, es popular en los circulos de interes en Inteligencia Artificial. Inicialmente era un lenguaje interpretado, hasta que a mediados de la decada de los 70's David Warren desarrollo un compilador, que convertia el programa en Prolog a un conjunto de instrucciones de una mquina abstracta denominada Warren Abstract Machine, o WAM. Su sintaxis y semantica son considerados simples y claros, su paradigma de programacin es el declarativo y un programa en Prolog se compone de clusulas que constituyen reglas del tipo modus ponens, es decir, "Si es verdad el antecendente, entonces es verdad el consecuente". No obstante, la forma de escribir las clusulas es al contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente.

C, fue diseado en 1971, por Dennis Ritchie y Ken Thompson mientras trabajaban para los Laboratorios Bell, y se baso en los lenguajes de programacin B y BCPL. Se basa en el paradigma imperativo y desde su creacin estuvo pensado para programacin de sistemas operativos, se creo para usarse en UNIX, y crecio de la mano del desarrollo de UNIX, lo que propicio la creacin de caractersticas avanzadas tales como variables dinmicas, multitarea, manejo de interrupciones, forking y un poderoso manejo entrada/salida de bajo nivel. Debido a esto C es comunmente usado para programacin de nivel de sistema en UNIX, Linux y Mac. Se trata de un lenguaje no fuertemente tipeado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Destaca su gran riqueza de operadores y expresiones.

C++, a finales de los 70's y principio de los 80's un nuevo modelo de de programacin fue desarrollado, la programacin orientada a objetos, la idea bsica es que los objetos son piezas de cdigo autocontenidas y reusables. Bjarne Stroustroup, tambin de los Laboratorios Bell, desarrollo un nuevo lenguaje basado en C que aplica los conceptos de la programacin orientada a objetos, inicialmente se llamo C con clases, para posteriormente tomar su nombre definitivo C++ cuando fue publicado en 1983. Las principales caractersticas del C++ son abstraccin, el soporte para programacin orientada a objetos y el soporte de plantillas o programacin genrica. Por lo cual, se puede decir que C++ es un lenguaje multi paradigma que abarca tres paradigmas de la programacin: La programacin estructurada, la programacin genrica y la programacin orientada a objetos.

Perl,(Practical Extraction and Report Language), fue desarrollado por Larry Wall, inicialmente motivado para cubrir las carencias de sed y awk y las limitaciones del shell, su primer versin publica fue anunciada en el Newsgroup comp.sources.misc el 18 de diciembre de 1987.

Actualmente Perl es un lenguaje de propsito general, usado para amplia gama de tareas que incluyen administracin de sistemas, desarrollo web, programacin en red, desarrollo GUI, si lo deseas, puedes programar orientado a objetos y mucho mas. Es uno de los lenguajes mas flexibles y poderosos, junto con Lisp, permite desarrollar prcticamente cualquier cosa con el, es poderoso, flexible y expresivo. Perl es libre y es divertido, permite ser creativo y no te ata a las restricciones impuestas por el diseador del lenguaje, en Perl siempre hay ms de una manera de hacer las cosas. Perl es multiplataforma y desde hace muchos aos a demostrado en el mundo real producir cdigo completamente reusable sin necesitar programacin orientada a objetos.

Python, es un lenguaje interpretado e interactivo, creado por Guido Van Rossum en 1991. Es completamente tipeado dinamicamente, usa manejo automtico de memoria, por lo cual es similar a Lisp, Perl, Ruby, Scheme y Tcl. Es desarrollado como proyecto de software libre, manejado por la Python Software Foundation. Tomo varias de sus caractersticas de Lisp. Algunos lo consideran la "oposicin leal" a Perl, lenguaje con el cual mantiene una rivalidad amistosa. Los usuarios de Python consideran a ste mucho ms limpio y elegante para programar. Sin embargo esto es mas un punto de vista de sus usuarios que una realidad. Su facilidad de aprendizaje, su orientacin a programadores promedio, su limpieza de cdigo, hacen que sea uno de los lenguajes mas exitosos al momento de escribir.

Ruby, es un lenguaje de programacin interpretado, orientado a objetos, con una sintaxis inspirada por Perl y Ada, que tambin tomo ideas de Lisp, Python, Dylan y CLU. Fue creado por Yukihiro Matsumoto, quien comenz su desarrollo en 1993, y lo pblico en 1995. El nombre Ruby fue elegido para reflejar su herencia de Perl; entre sus caractersticas tenemos: Lenguaje de guiones interpretado. Posibilidad de realizar directamente llamadas al sistema operativo; potentes operaciones sobre cadenas de caracteres y expresiones regulares, retroalimentacin inmediata durante el proceso de desarrollo. Rpido Y Sencillo; son innecesarias las declaraciones de variables, las variables son de tipo dinmico, la sintaxis es simple y consistente; la gestin de la memoria es automtica.

Programacin orientada a objetos; todo es un objeto, clases, herencia, mtodos, mtodos singleton, mixins por mdulos, iteradores y cierres.

Ansi Common Lisp, en abril de 1981, despus de una reunin patrocinada por DARPA, se unieron los esfuerzos de Symbolics, el proyecto SPICE, el proyecto NIL y el proyecto S-1 Lisp, para definir Common Lisp. Common Lisp fue diseado como una descripcin de una familia de dialectos de Lisp. Common Lisp recibi alimentacin de La Maquina Lisp, MacLisp, NIL, S-1 Lisp, Spice Lisp y Scheme. El libro Common Lisp: The language es la descripcin de ese diseo. Su semntica fue dejada sin especificar en aquellas partes donde una fuerte especificacin pudiera ser un obstculo en el uso e investigacin de Lisp. En 1986 se formo un grupo de trabajo para producir un draft para un estndar ANSI de Common Lisp, entre las especificaciones que presento se encontraban estandarizaciones para portabilidad, facilidades de iteracin, manejo de grandes conjuntos de caracteres, un sistema de programacin orientada a objetos, entre otras. El estndar ANSI Common Lisp fue publicado en 1994. Lisp se consolido como el lenguaje de programacin ms poderoso y flexible jamas inventado. Muchos de los lenguajes modernos han copiado la mayora de sus caractersticas, sin embrago no todas ya que entonces no podran decir que son un nuevo lenguaje sino simplemente otro dialecto de Lisp.

Java,Java es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. La plataforma Java consta de las siguientes partes: El lenguaje de programacin, la mquina virtual de Java o JRE, que permite la portabilidad en ejecucin y el API Java, una biblioteca estndar para el lenguaje Este lenguaje de programacin fue desarrollado por James Gosling, y sus equipo en Sun Microsystems, entre 1990 y 1994, pensado originalmente como un reemplazo de C++, orientado a dispositivos embebidos, y a la televisin interactiva, posteriormente que para rescatarlo del fracaso y fue reorientado hacia su aplicacin en la Web.

Las cinco metas del lenguaje Java son: Orientado a objetos, Multiplataforma, Soporte integrado para redes de computadoras, Diseado para ejecutar cdigo de fuentes remotas de modo seguro y Facilidad de uso. Desde sus inicios Java no fue bien recibido por su falta de aportaciones originales, su lentitud, y su rigida estructura, sin embargo en base a intensas campaas de marketing Sun ha logrado que en los ambientes empresariales Java sea uno de los estndares sobre todo para aplicaciones del lado del servidor.

Java Script, es un lenguaje de script basado en objetos, que se apoya en el modelo de prototipos. Es muy popular por su uso en sitios Web. Fue desarrollado por Brendan Eich, en su trabajo para Netscape, quien lo public en diciembre de 1995. Su sintaxis es parecida a la de C, y al igual que C utiliza el concepto de palabras reservadas, tiene soporte para expresiones regulares y UTF. Cuando se usa en Web, se conecta a travs de su interfaz DOM (Document Object Model) a las aplicaciones tanto del lado del cliente como del servidor. Gracias a esto es usado para crear poderosas aplicaciones web dinmicas. Desafortunadamente los diferentes navegadores exponen diferentes objetos y mtodos por lo cual es necesario escribir versiones especificas de un programa en Javascript para los diferentes tipos de navegadores; entre las principales tecnologas para interactuar con DOM que usan JavaScript esta AJAX y DHTML.

Php, creado por Rasmus Lerdorf, en 1994, inicialmente eran una serie de scripts en Perl y posteriormente estos scripts fueron reescritos en C, que el usaba para algunas tareas Web. Inicialmente significaba Personal Home Page Tools, y fue publicado por primera vez el 8 de junio de 1995, actualmente su nombre oficial es: PHP Hypertext Preprocessor. Las caracteristicas mas destacadas de PHP son su facilidad de aprendizaje y que es un software libre. Las anteriores caractersticas, sumadas a su amplio soporte a manejadores de bases de datos lo han convertido en uno de los lenguajes mas populares para programacin Web, los famosos desarrollos LAMP. Comparte caractersticas con otros lenguajes de programacin como C y Perl y recientemente con Java. Adems de ser usado en web, puede usarse desde la lnea de comandos y para construir GUI's con PHP-GTK.

C#, es un lenguaje orientado a objetos desarrollado por Microsoft, tomando ideas de C++ y Java, como parte de su estrategia comercial .Net. Esta normalizado, por ECMA quien en el ao 2001 publico la ECMA-334 C# Language Specification; en el ao 2003 se convirti en un estndar ISO (ISO/IEC 23270). Adems de la implementacin de Microsoft existen implementaciones libres como Mono y dotGNU. Gracias a la maquinara comercial de Microsoft y la amplia base de escritorios Windows, el uso de C# es muy extendido en entornos corporativos y en el mundo Windows en general.

En la cuarta generacin aparecen los microprocesadores siendo un avance importante en microelectrnica, son circuitos integrados de alta densidad y con una velocidad impresionante. En la dcada del 70 empieza a utilizarse la tcnica LSI (Large Scale Integration) Integracin a Gran Escala, siendo en 1965 un "chip" cuadrado de aproximadamente 0.5 centmetros de lado poda almacenarse hasta 1.000 elementos de un circuito, en 1970 con la tcnica LSI poda almacenarse 150.000. El primer microprocesador de esta generacin, fue el modelo 4004 creado por Intel como modelo comercial y contena todos los circuitos requeridos para hacerlo programable. Los microordenadores con base en estos circuitos son extremadamente pequeos y baratos, por lo que su uso se extiende al mercado industrial. As nacen los ordenadores personales que han adquirido proporciones enormes y que han influido en la sociedad en general. En 176 Steve Wozniak y Steve Jobs intentan el primer microordenador de uso masivo y ms tarde forman la compaa conocida como Apple, que fue la segunda compaa ms grande del mundo, superada tan solo por IBM. Con el surgimiento de los ordenadores personales, el software y los sistemas que con ellos se manejan han tenido un considerable avance, porque han hecho ms interactiva la comunicacin con el usuario. Surgen otras aplicaciones como los procesadores de palabras, las hojas electrnicas de clculo, paquetes grficos, etc. Tambin las industrias del software de los ordenadores personales crece con gran rapidez, Gary kildall y William Gates se dedicaron durante aos a la creacin de sistemas operativos y mtodos para lograr una utilizacin sencilla de los microordenadores (son los creadores de CP/M y de los productos de Microsoft). Estas herramientas prefabricadas, que aparentemente dan lugar a un lenguaje de programacin de alto nivel, se parece ms al idioma ingls que a un lenguaje de tercera generacin, porque se aleja ms del concepto de

"procedimiento". Son los lenguajes capaces de generar cdigo por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje, se puede acceder a bases de datos. Aqu tambin se encuentran los lenguajes orientados a objetos, haciendo posible la reutilizacin de partes del cdigo para otros programas. Ej. Visual, Natural Adabes. son una serie de circuitos integrados de alta y media escala de integracin con la que se van consiguiendo mejoras en el tamao fsico, llegando a tener computadores de bolsillo, aparecen los mini computadores y micro computadores. En la quinta generacin se hace acelerada la marcha de la microelectrnica, la sociedad industrial se ha dado a la tarea de poner tambin a esa altura el desarrollo del software y los sistemas con que se manejan los ordenadores. Surge la competencia internacional por el dominio del mercado de la computacin, en la que se perfilan dos lderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con el ordenador en un lenguaje ms cotidiano y no a travs de cdigos o lenguajes de control especializados. Para algunos especialistas ya se inici la quinta generacin, la cual busca hacer ms poderoso el computador en el sentido que sea capaz de hacer inferencias sobre un problema especfico. Se basa en la inteligencia artificial, el Hardware de esta generacin se debe caracterizar por circuitos de fibra ptica que le permita mayor rapidez e independencia de procesos, arquitectura de micro canal para mayor fluidez de los sistemas, esto provee mayor numero de vas par ayudar a manejar rpido y efectivamente el flujo de informacin. Adems estn buscando soluciones para los problemas de la independencia de las soluciones y los procesos basndose para ello en sistemas expertos (de inteligencia artificial) capaces de resolver mltiples problemas no estructurados y en computadores que pueden simular correctamente la forma de pensar del ser humano. Japn lanz en 1983 el llamado "programa de la quinta generacin de ordenadores", con los objetivos explcitos de producir mquinas con innovaciones reales en los criterios mencionados. En los Estados Unidos se desarroll un programa que persegua objetivos semejantes: Procesamiento en paralelo mediante arquitecturas y diseos especiales y circuitos de gran velocidad. Manejo de lenguaje natural y sistemas de inteligencia artificial.

Sistemas Operativos Un sistema Operativo (SO) es en s mismo un programa de ordenador. Sin embargo, es un programa muy especial, quiz el ms complejo e importante en un ordenador. El SO arranca el ordenador y hace que reconozca a la CPU, la memoria, el teclado, el sistema de vdeo y las unidades de disco. Adems, proporciona la facilidad para que los usuarios se comuniquen con el ordenador y sirve de plataforma a partir de la cual se ejecutan los programas de aplicacin. Cuando se enciende un ordenador, lo primero que ste hace es llevar a cabo un autodiagnstico llamado autoprueba de encendido (POST, Power On Self Test). Durante la POST, el ordenador identifica su memoria, sus discos, su teclado, su sistema de vdeo y cualquier otro dispositivo conectado a l. Lo siguiente que el ordenador hace es buscar un sistema operativo para arrancar (boot).

Una vez que el ordenador ha puesto en marcha su SO, mantiene al menos parte de ste en su memoria en todo momento y, mientras el ordenador est encendido, 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 el ordenador. 2. Administrar los dispositivos de hardware en el ordenador. Cuando se ejecutan 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, que 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 ordenador, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como "llamadas del sistema"

Los sistemas operativos pueden ser Multitarea: El trmino multitarea se refiere a la capacidad del SO para ejecutar mas de un programa al mismo tiempo. Existen dos esquemas, el primero requiere de la cooperacin entre el SO y los programas de aplicacin, y el segundo mtodo es el llamada multitarea con asignacin de prioridades. Multiusuario: Un SO multiusuario permite a mas de un solo usuario acceder a un ordenador. 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 un miniordenador, era multiusuario y multitarea desde su concepcin. Multiproceso: Los ordenadores que tienen ms de un CPU son llamados multiproceso. Un sistema operativo multiproceso coordina las operaciones de estos ordenadores. Ya que cada CPU en un ordenador de multiproceso puede estar ejecutando una instruccin, el otro procesador queda liberado para procesar otras instrucciones simultneamente. Al usar un ordenador con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todos los ordenadores que tienen capacidad de multiproceso ofrecen una gran ventaja.

Lista de los Sistemas Operativos ms comunes.

MS-DOS: Ha sido el ms comn y popular de todos los Sistemas Operativos para PC. La razn de su popularidad se debi al aplastante volumen de software disponible y a la base instalada de ordenadores con procesador Intel. Cuando Intel liber el 80286, el DOS se hizo tan popular y firme en el mercado que las aplicaciones para l 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 eso significaba ordenadores que ejecutaran DOS, tan bien como los ordenadores IBM lo hacan.

UNIX: Unix es un SO multiusuario y multitarea, que corre en diferentes ordenadores, desde mainframes, miniordenadores, ordenadores personales y estaciones de trabajo. Es un sistema operativo, extremadamente slido y capaz, aunque complejo pues tiene muchos comandos, que fue creado a principios de los setenta por cientficos en los Laboratorios Bell. Fue especficamente diseado para disponer una manera de manejar, cientfica y especializadamente, las aplicaciones computacionales. Este sistema operativo se adapt a los sistemas de cmputo personales, lo que lo convierte en un sistema popular. Una versin libre del mismo es Linux.

MACINTOSH: Los Macintosh son 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 hicieron la favorita de la gente que no quiere saber nada de interfaces de lnea de comando. Las capacidades grficas de Macintosh hicieron de esa mquina la primera precursora en los campos grficos computarizados como la autoedicin por ordenador. La familia de microordenadores de Apple Macintosh y su sistema operativo define otra plataforma importante. Los PC de Macintosh, que se basan en la familia de microprocesadores de Motorola, usan la arquitectura de Bus de 32 bits.

WINDOWS: Windows es un sistema operativo desarrollado por Microsoft, que tiene numerosas versiones. El Windows 3.0 y Windows 3.1 estaban basados en el DOS, por lo cual muchos expertos no lo consideraban un verdadero Sistema Operativo, siendo su capacidad de multitarea (hacer mas de una tarea) muy limitada. Al salir al mercado el Windows 95, caus una autntica revolucin en los SO para PC, ues era independiente del MS-DOS, aunque guardaba compatibilidad con ste. Se haba esarrollado en parte con cdigo de 32 bits a diferencia de los anteriores que eran de 8 y 16 bits. Windows 98 es una mejora de Windows 95, casi totalmente desarrollado con cdigo de 32 bits, mucho ms robusto y completo. De igual forma Windows XP , vista y Actualmente se emplea Windows seven y tambin existen versiones para red, como Windows NT y Windows 2000 server.

GNU/LINUX: Es un sistema operativo derivado de UNIX que, manteniendo la generalidad de sus caractersticas, como el ser multitarea y basado en bibliotecas dinmicas, puede ser ejecutado en ordenadores personales aunque su potencia sea limitada.

En sus orgenes fue desarrollado, en 1990, por el informtico finlands Linus Torvalds, que public su cdigo como un denominado cdigo abierto, esto es, accesible para toda la comunidad, sin restricciones para modificarlo y ampliarlo. Este planteamiento, favorecido por su estructura modular (basado en la instalacin de diversos paquetes), gener una nueva visin de desarrollo informtico, ya que su expansin fue debida a la aportacin, generalmente voluntaria y sin nimo de lucro, de multitud e desarrolladores independientes. En la actualidad este sistema operativo ha obtenido un cierto apoyo por parte de la industria, de manera que empresas como IBM lo integran en algunos de sus ordenadores y prestan el soporte tcnico correspondiente, normalmente como parte de los sistemas servidores.

Otra forma de proceso paralelo que se est investigando es el uso de ordenadores moleculares. En estos ordenadores, los smbolos lgicos se expresan por unidades qumicas de ADN en vez de por el flujo de electrones habitual en los ordenadores corrientes. Los ordenadores moleculares podran llegar a resolver problemas complicados mucho ms rpidamente que las actuales superordenadores y consumir mucha menos energa.

Manera de ejecutarse del lenguaje. Segn la manera de ejecutarse:

Lenguajes compilados: Un programa traductor traduce el cdigo del programa (cdigo fuente) en cdigo mquina (cdigo objeto). Otro programa, el enlazador, unir los ficheros de cdigo objeto del programa principal con los de las libreras para producir el programa ejecutable. Ejemplo: C. Lenguajes interpretados: Un programa (intrprete), ejecuta las instrucciones del programa de manera directa. Ejemplo: Lisp. Tambin los hay mixtos, como Java, que primero pasan por una fase de compilacin en la que el cdigo fuente se transforma en bytecode, y este bytecode puede ser ejecutado luego (interpretado) en ordenadores con distintas arquitecturas (procesadores) que tengan todos instalados la mismamquina virtual Java. 5. Manera de abordar la tarea a realizar. Segn la manera de abordar la tarea a realizar, pueden ser:

Lenguajes imperativos: Indican cmo hay que hacer la tarea, es decir, expresan los pasos a realizar. Ejemplo: C. Lenguajes declarativos: Indican qu hay que hacer. Ejemplos: Lisp, Prolog. Otros ejemplos de lenguajes declarativos, pero que no son lenguajes de programacin, son HTML (para describir pginas web) oSQL (para consultar bases de datos). 6. Paradigma de programacin. El paradigma de programacin es el estilo de programacin empleado. Algunos lenguajes soportan varios paradigmas, y otros slo uno. Se puede decir que histricamente han ido apareciendo para facilitar la tarea de programar segn el tipo de problema a abordar, o para facilitar el mantenimiento del software, o por otra cuestin similar, por lo que todos corresponden a lenguajes de alto nivel (o nivel medio), estando los lenguajes ensambladores atados a la arquitectura de su procesador correspondiente.

Los principales son: Lenguajes de programacin procedural: Divide el problema en partes ms pequeas, que sern realizadas por subprogramas (subrutinas, funciones, procedimientos), que se llaman unas a otras para ser ejecutadas. Ejemplos: C, Pascal. Lenguajes de programacin orientada a objetos: Crean un sistema de clases y objetos siguiendo el ejemplo del mundo real, en el que unos objetos realizan acciones y se comunican con otros objetos. Ejemplos:C++, Java. Lenguajes de programacin funcional: La tarea se realiza evaluando funciones, (como en Matemticas), de manera recursiva. Ejemplo: Lisp. Lenguajes de programacin lgica: La tarea a realizar se expresa empleando lgica formal matemtica. Expresa qu computar. Ejemplo: Prolog. Hay muchos paradigmas de programacin: Programacin genrica,

programacin reflexiva, programacin orientada a procesos, etc. 7. Lugar de ejecucin. En sistemas distribuidos, segn dnde se ejecute: Lenguajes de servidor: Se ejecutan en el servidor. Ejemplo: PHP es el ms utilizado en servidores web. Lenguajes de cliente: Se ejecutan en el cliente. Ejemplo: JavaScript en navegadores web. 8. Concurrencia.

Segn admitan o no concurrencia de procesos, esto es, la ejecucin simultnea de varios procesos lanzados por el programa:

Lenguajes concurrentes. Ejemplo: Ada. Lenguajes no concurrentes. Ejemplo: C. 9. Interactividad. Segn la interactividad del programa con el usuario u otros programas:

Lenguajes orientados a sucesos: El flujo del programa es controlado por la interaccin con el usuario o por mensajes de otros programas/sistema operativo, como editores de texto, interfaces grficos de usuario (GUI) o kernels. Ejemplo: VisualBasic, lenguajes de programacin declarativos. Lenguajes no orientados a sucesos: El flujo del programa no depende de sucesos exteriores, sino que se conoce de antemano, siendo los procesos batch el ejemplo ms claro (actualizaciones de bases de datos, colas de impresin de documentos, etc.). Ejemplos: Lenguajes de programacin imperativos. 10. Realizacin visual. Segn la realizacin visual o no del programa:

Lenguajes de programacin visual: El programa se realiza moviendo bloques de construccin de programas (objetos visuales) en un interfaz adecuado para ello. No confundir con entornos de programacin visual, como Microsoft Visual Studio y sus lenguajes de programacin textuales (como Visual C#). Ejemplo: Mindscript. Lenguajes de programacin textual: El cdigo del programa se realiza escribindolo. Ejemplos: C, Java, Lisp. 11. Determinismo. Segn se pueda predecir o no el siguiente estado del programa a partir del estado actual:

Lenguajes deterministas. Ejemplos: Todos los anteriores. Lenguajes probabilsticos o no deterministas: Sirven para explorar grandes espacios de bsqueda, (como gramticas), y en la investigacin terica de hipercomputacin. Ejemplo: mutt (generador de texto aleatorio). 12. Productividad. Segn se caractericen por tener virtudes tiles o productivas, u oscuras y enrevesadas:

Lenguajes tiles o productivos: Sus virtudes en cuanto a eficiencia, sencillez, claridad, productividad, etc., motiva que sean utilizados en empresas, administraciones pblicas y/o en la enseanza. Ejemplos: Cualquier lenguaje de uso habitual (C, Java, C++, Lisp, Python, Ruby, ). Lenguajes esotricos o exticos: Inventados con la intencin de ser los ms raros, oscuros, difciles, simples y/o retorcidos de los lenguajes, para diversin y entretenimiento de frikis programadores. A veces exploran nuevas ideas en programacin. Ejemplo: Brainfuck.

You might also like