ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Historia Y Evolución De Lenguajes De Programación


Enviado por   •  7 de Febrero de 2014  •  3.005 Palabras (13 Páginas)  •  364 Visitas

Página 1 de 13

1. Introducción

Este articulo está dirigido principalmente a aquellas personas que se iniciaron en el mundo de la programación con lenguajes de tercera generación como Pascal y C. Lenguajes de alto nivel y estructurados que hacían de la programación procedural toda un arte. Me refiero específicamente a los compiladores Turbo de Borland que corrían sobre el sistema operativo DOS. Para aquellos programadores, donde cada problema se convertía en un reto por resolver, y a los que el lenguaje les respondía de forma excelente. Para aquellos programadores que ven la programación como un arte, como un reto, y que la toman con pasión, para los que no había nada difícil y todo lo podían resolver tan solo con un compilador clásico de C o Pascal. El artículo quiere mostrar, por qué esos lenguajes se quedan cortos ante los requerimientos de software actuales y porque es necesario cambiarse a la POO.

Es muy seguro, que alguien que aprendió C o Pascal a fondo, conoce también del lenguaje de ensamblado o ensamblador, y porque no hasta del lenguaje de la máquina. Esto, porque algunas aplicaciones que necesitaban mucho más control sobre la máquina o necesitaban usar recursos del sistema operativo requerían de la mezcla del lenguaje de alto nivel con lenguaje ensamblador, y con esa mezcla, el programador terminaba conociendo más a fondo el funcionamiento del PC, y podía lograr hazañas muy interesantes.

Con la aparición de Object Pascal y C++, incorporando a los lenguajes nativos elementos del paradigma Orientado a Objetos, muy pocos eran los programadores que utilizaban las nuevas características y, los que las utilizaban, no lo hacían de la mejor manera. La razón de esto, es que dichos lenguajes, permitían mezclar programación procedural con POO, y los programas terminaban siendo programas procedurales a pesar de utilizar elementos de POO.

La aparición de Windows dejó atrás al DOS, y por lo tanto tenían que aparecer lenguajes para el nuevo sistema operativo. Los nuevos lenguajes visuales insistían un poco más en la POO, pero aún así, se podían seguir construyendo aplicaciones meramente procedurales. Esto permitía que el programador, por estar utilizando herramientas de la POO, se sintiera confiado de estar utilizando el nuevo paradigma y no notaba las verdaderas ventajas éste. Lo que hacía usando POO, lo podía hacer de forma procedural.

Internet y los requerimientos no Funcionales del software como mantenibilidad, flexibilidad, robustez, escalabilidad, entre otros, hacen que características de la POO como la herencia, el polimorfismo y el uso de interfaces para prestar servicios, logren imponer a la POO como una de las mejores opciones para desarrollar software hoy en día. Al usar correctamente la potencia de la orientación a objetos combinada con un buen Framework o Middleware de desarrollo, los "desarrolladores" pueden construir aplicaciones ajustables a las variaciones de los requerimientos tanto funcionales como no funcionales que los clientes necesiten.

Para poder usar correctamente la POO también es necesario que existan herramientas pensadas para ello. Afortunadamente nacieron Java de Sun Microsystems y C# de la plataforma .Net de Microsoft, entre otros. En estos lenguajes, hasta el más mínimo programa es una Clase, lo que hace que el desarrollador piense en términos de clases y de interfaces y empiece a dejar atrás la programación procedural. Aun así, dichos lenguajes no garantizan que los desarrolladores usen correctamente la POO.

2. Evolución de los Lenguajes de Programación

En ésta sección se describirá brevemente cómo han evolucionado los lenguajes de programación, desde el lenguaje de máquina y ensamblador (Bajo Nivel) hasta los lenguajes estructurados y orientados a objetos (Alto Nivel). También se incluye la evolución desde el punto de vista de las generaciones.

2.1. Lenguajes de Bajo Nivel

2.1.1. Lenguaje Máquina

Es el lenguaje que entiende el procesador y está basado en el sistema binario [4]. Está formado por un conjunto de instrucciones o códigos que pueden ser interpretados directamente por el procesador [5]. El lenguaje máquina varía dependiendo del hardware y evoluciona con cada versión del CHIP. Cuando se habla del lenguaje máquina en el IBM PC y compatibles, se habla principalmente de la familia de procesadores Intel 80xX y de su evolución hasta el actual Pentium IV. ´

En cada versión del CHIP Intel se han agregado nuevas funcionalidades, pero Intel siempre ha tratado de mantener la compatibilidad con las versiones anteriores, por lo que se habla de que un programa es compatible con la Familia x86. Según lo anterior, un programa hecho para el 80x386 (Primera versión estable que soporta multi-tarea [4]) debería funcionar aun en los últimos Pentium IV de doble núcleo. La verdad es que si funcionan, pero no utilizan las características nuevas del procesador.

La principal ventaja del lenguaje máquina es su alta velocidad, debida a la traducción inmediata de los códigos binarios. Entre sus muchas debilidades encontramos [1]:

• Codificación compleja: el programador debe entender el significado de los unos y ceros y tener tablas de instrucciones y variables. En los procesadores actuales de 64bits, por ejemplo, una instrucción tiene 64 unos y ceros, lo cual es muy difícil de controlar.

• Errores en la codificación y depuración compleja: debido a la complejidad de los códigos.

• Productividad mínima: tiempos de desarrollo muy altos

• No portabilidad: un programa solo funciona sobre el hardware para el que es hecho.

2.1.2. Lenguaje Ensamblador

Son una representación más entendible para el humano de los códigos del lenguaje máquina. Cada instrucción en lenguaje ensamblador representa una instrucción en el lenguaje máquina [6]. El lenguaje ensamblador aparece casi a la par con el lenguaje máquina, esto debido a que los fabricantes de hardware diseñan sus Chips pensando ya en las instrucciones de un lenguaje de ensamblado.

Un ejemplo de una instrucción en lenguaje máquina y en lenguaje ensamblador:

Tabla 1: Ejemplo de Lenguaje Máquina vs. Lenguaje Ensamblador

Lenguaje Máquina Lenguaje Ensamblador

0010111000000001

0000000000001010 mov ax, 10

A pesar de que el lenguaje ensamblador es más fácil de entender por las personas sigue teniendo las desventajas del lenguaje de máquina. Realmente lo que hace es ayudar un poco a que el código sea más legible. El lenguaje ensamblador adicionalmente necesita un traductor (ensamblador) capaz de convertir dichos códigos en lenguaje máquina [1].

Ejemplos de ensambladores: TASM (Turbo Assembler de Borland), MASM (Microsoft Macro Assembler),

...

Descargar como (para miembros actualizados) txt (20 Kb)
Leer 12 páginas más »
Disponible sólo en Clubensayos.com