You are on page 1of 2

Por generaciones

La Informtica es una ciencia joven, naci en los aos cuarenta, y tom su carcter de disciplina acadmica en los aos sesenta
con la creacin de los primeros centros de Clculo en la Universidades. La evolucin de los lenguajes de programacin ha ido, en cierta
medida, paralelo al desarrollo de la Informtica. Los lenguajes se pueden clasificar segn generaciones en:
Primera generacin
Segunda generacin
Tercera generacin
Cuarta generacin
Quinta generacin
Generacin orientada a objetos
Generacin visual
Generacin internet
La primera generacin est constituida por los lenguajes mquina y ensamblador desarrollados en los aos
cuarenta y cincuenta.
La segunda generacin comienza con el desarrollo del primer compilador de FORTRAN en el ao 1958 y continua
hasta mediados de los aos sesenta con la normalizacin por el American National Standard Institute (ANSI) de
los lenguajes de programacin, ligados hasta ese momento a marcas comerciales. Se caracteriza por los lenguajes
con asignacin esttica de memoria, es decir toda la memoria se asigna en tiempo de compilacin. Estos lenguajes
no tenan ni recursividad, ni manejaban estructuras dinmicas de datos. Ejemplos de estos lenguajes son FORTRAN
y COBOL.
La tercera generacin est ligada al trmino programacin estructurada, y se desarrolla entre mediados de los
aos sesenta y mediados de los aos setenta, aunque a nivel de lenguajes sus raices estn en el lenguaje Algol 60
(desarrollado a principios de los aos sesenta). Como caractersticas principales de los lenguajes de esta generacin
son: uso de mdulos o subprogramas, variables locales, recursividad, y estructuras dinmicas. Ejemplos de estos
lenguajes son: Algol 60, PL/I, Algol 68, Pascal, Modula, y C.
La cuarta generacin est caracterizada por lenguajes de muy alto nivel dedicados a tareas especficas, en muchos
casos denominados herramientas. Una gran parte de ellos estn dedicados a la gestin de bases de datos y a la
generacin de aplicaciones con herramientas CASE. El desarrollo de estos lenguajes se produce desde mediados
de los aos setenta hasta finales de los ochenta. Ejemplos: SQL, DB2, DBASE, Ingress, Natural, Ideal, Application
Factory, etc...
La quinta generacin est asociada a los lenguajes ligados a la Inteligencia Artificial. La mayor parte de este tipo
de lenguajes son versiones actualizadas o descendientes de los lenguajes Lisp y Prolog. Aunque el lenguaje Lisp
data de 1959, el desarrollo intenso de estos lenguajes se produce desde principios de los aos ochenta a principios
de los noventa. Ejemplos: Common Lisp, Prolog, Parlog, ML, Haskell, Miranda, etc...
Generacin orientada a objetos. Es la ltima generacin puede decirse que comienza a mediados de los aos
ochenta, aunque el primer lenguaje orientado a objetos fue el Simula 67, presentado en el ao 1967 (fig. 2).
Smalltalk se comenz a desarrollar a principios de los aos setenta, desembocando en el Smalltalk 80, de amplio
uso en la decada de los aos ochenta. El desarrollo del lenguaje Ada (basado en objetos, no orientado a objetos)
a finales de los 70 y la proliferacin de las Interfaces Grficas de Usuario (IGU) a finales de los ochenta ha
implicado la creacin de nuevos lenguajes o la ampliacin de lenguajes para introducir el paradigma de orientacin
a objetos. Ejemplos: Simula, Smalltalk, C++, Object Pascal, Turbo Pascal, CLOS, ObjectLisp, Eiffel, y Oberon.
Generacin visual. Comienza a principios de los aos noventa, ligado a la exigencia de los usuarios de disponer
de interfaces amigables. La mayor parte de las caractersticas visuales van orientadas al diseo del interfaz de
usuario. Ejemplos: Visual Basic, Delphi (versin visual del lenguaje Object Pascal),...
Generacin internet. Comienza a mediados de los aos noventa, ligado a la gran explosin de internet y a la
necesidad de manejar aplicaciones en distintas plataformas dentro de toda la red. El lenguaje ms caracterstico
es Java, pero tambin se podran incluir dentro de esta generacin: XML, HTML, VRML y otros.

1.2 Ventajas de los lenguajes de alto nivel


Las ventajas de los lenguajes de alto nivel sobre los de bajo nivel (lenguaje mquina y lenguaje ensamblador) son las siguientes:
Los lenguajes de alto nivel son ms fciles de aprender que los de bajo nivel. El aprendizaje de muchos lenguajes de alto
nivel necesita pocos o nulos conocimientos del hardware, ya que dichos lenguajes son prcticamente independientes de la
mquina. Sin embargo los lenguajes de alto nivel estn cerrados a ciertas zonas de la mquina, a las que tienen acceso los
lenguajes de bajo nivel.
Los programadores se liberan de ocupaciones rutinarias con referencias a instrucciones simblicas o numricas, asignaciones
de memoria, etc...Tales tareas se manejan por un traductor que traslada el lenguaje de alto nivel al lenguaje mquina, y se
evitan errores humanos.

-6-
Un programador de lenguajes de alto nivel no necesita conocer la forma en que se colocan los distintos tipos de datos en la
memoria del ordenador.
La mayoria de los lenguajes de alto nivel ofrecen al programador una gran variedad de estructuras de control, que no se
disponen en los lenguajes de bajo nivel. Por ejemplo los lenguajes de alto nivel tienen las siguientes construcciones de control
de flujo:
- Sentencias condicionales (tales como IF-THEN-ELSE o CASE)
- Bucles (FOR, WHILE, REPEAT)
- Estructuras de bloque (BEGIN-END)
Estas estructuras de programacin fomentan estilos y tcnicas de programacin estructurada. Obtenindose programas fciles
de leer, comprender y modificar. Con lo que se reducen los costos de programacin al ser programas menos complicados que
los realizados en lenguajes de bajo nivel.
Los programas escritos en lenguajes de alto nivel se depuran ms fcilmente que los escritos en lenguaje mquina o ensam-
blador. Los lenguajes de alto nivel tienen construcciones que eliminan o reducen ciertos tipos de errores de programacin,
que aparecen en los lenguajes de bajo nivel.
Los lenguajes de alto nivel tienen una mayor capacidad de creacin de estructuras de datos, tanto estticas como dinmicas,
que facilitan la resolucin de muchos problemas. Los lenguajes orientados a objeto tambin pueden manejar tipos abstractos
de datos, que permiten la reutilizacin de cdigo.
Los lenguajes de alto nivel permiten un diseo modular de los programas, con lo que se consigue una divisin del trabajo
entre los programadores, obtenindose un mejor rendimiento en la realizacin de aplicaciones.
Los lenguajes de alto nivel tambin incluyen la posibilidad de incorporar soporte para la programacin orientada a objetos
y la genericidad.
Finalmente los lenguajes de alto nivel son relativamente independientes de la mquina, obtenindose programas que se pueden
ejecutar en diferentes ordenadores. Tan slo hay que volver a compilarlos o interpretarlos, reducindose costos y, en general,
pueden instalarse de nuevo si se queda el ordenador obsoleto. Sin embargo todos los programas escritos en lenguaje mquina
y en ensamblador no se pueden implementar en otros ordenadores que no posean una arquitectura compatible o se utice algunos
de los mtodos de transporte que se vern en el apartado 3.
Un lenguaje de alto nivel ha de procesarse antes de ejecutarse para que el ordenador pueda comprenderlo. Este proceso se
realizar mediante un procesador de lenguaje.
Dada la importancia de poseer lenguajes de distintos niveles, se entiende la necesidad de escribir traductores que trasladen los
lenguajes entre s; de compiladores que pasen los lenguajes de alto nivel a bajo nivel; y de ensambladores que generen el cdigo mquina
de las distintas arquitecturas de ordenadores. A los traductores, compiladores e intrpretes, ensambladores, y otros programas que realizan
operaciones con lenguajes se les denomina con el nombre genrico de procesadores de lenguaje.
TAMAO DEL PROGRAMA EJECUTABLE EN BYTES

30.000

23.136
25.000

20.000

15.000

8.631

10.000

5.000
610
24

0
Lenguaje mquina L. ensamblador Lenguaje C Lenguaje C++
LENGUAJES DE PROGRAMACION
Fig. 4: Niveles de los lenguajes de programacin y tamao de los ficheros ejecutables

-7-

You might also like