Generaciones de lenguajes de programación
Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.
Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las siguientes:
- Primera generación: Los primeros ordenadores se programaban directamente en código binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.
- El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de unautómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa consiste en una cadena de estas instrucciones más un conjunto de datos sobre el cual se trabaja. Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas.
- Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.
- Pese al conjunto de modificaciones morfológicas antes reseñadas, desde el punto de vista de la anatomía comparada, llama la atención una cuestión: Homo sapiens es un animal relativamente poco especializado. En efecto, gran parte de las especies animales ha logrado algún tipo de especialización anatómica (por ejemplo los artiodáctilos poseenpezuñas que les permiten correr en las llanuras despejadas), pero las especializaciones, si suelen ser una óptima adaptación a un determinado bioma, conllevan el riesgo de la desaparición de la especie especializada y asociada a tal bioma si éste se modifica.La ausencia de tales especializaciones anatómicas ha facilitado a los humanos una adaptabilidad inusitada entre las demás especies de vertebrados para adecuarse a muy diversas condiciones ambientales.
- Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de lasMatemáticas.
- Un lenguaje de programación de alto nivel se caracteriza por expresar el algoritmo de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.En los primeros lenguajes, la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales o lenguajes de bajo nivel. Otra limitación de estos es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida.Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman de tercera generación o de nivel alto, en contraposición a los de bajo nivel o de nivel próximo a la máquina.
- Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:
- Acceso a base de datos.
- Capacidades Gráficas.
- Generación de código automáticamente.
- Puede programarse visualmente como Visual Basic (Programación Visual).
Los conceptos de la POO tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron confundidas por la explosión combinatoria de cómo las diversas cualidades de diferentes naves podían afectar unas a las otras. La idea surgió al agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus "propios" datos y comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "sobre la marcha" (en tiempo de ejecución) en lugar de tener un sistema basado en programas estáticos.
- Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.
- La quinta generación de computadoras, también conocida por sus siglas en inglés, FGCS (de Fifth Generation Computer Systems) fue un ambicioso proyecto propuesto porJapón a finales de la década de 1970. Su objetivo era el desarrollo de una nueva clase de computadoras que utilizarían técnicas y tecnologías de inteligencia artificial tanto en el plano del hardware como del software,1 usando el lenguaje PROLOG2 3 4 al nivel del lenguaje de máquina y serían capaces de resolver problemas complejos, como latraducción automática de una lengua natural a otra (del japonés al inglés, por ejemplo). Como unidad de medida del rendimiento y prestaciones de estas computadoras se empleaba la cantidad de LIPS (Logical Inferences Per Second) capaz de realizar durante la ejecución de las distintas tareas programadas. Para su desarrollo se emplearon diferentes tipos de arquitecturas VLSI (Very Large Scale Integration).El proyecto duró once años, pero no obtuvo los resultados esperados: las computadoras actuales siguieron así, ya que hay muchos casos en los que, o bien es imposible llevar a cabo una paralelización del mismo, o una vez llevado a cabo ésta, no se aprecia mejora alguna, o en el peor de los casos, se produce una pérdida de rendimiento. Hay que tener claro que para realizar un programa paralelo debemos, para empezar, identificar dentro del mismo partes que puedan ser ejecutadas por separado en distintos procesadores. Además, es importante señalar que un programa que se ejecuta de manera secuencial, debe recibir numerosas modificaciones para que pueda ser ejecutado de manera paralela, es decir, primero sería interesante estudiar si realmente el trabajo que esto conlleva se ve compensado con la mejora del rendimiento de la tarea después de paralelizarla.
No hay comentarios:
Publicar un comentario