Domingo, 29 de mayo de 2011

LENGUAJES DE PROGRAMACI?N

?Al igual que los idiomas sirven de veh?culo de comunicaci?n entre los seres humanos, existen lenguajes que realizan la comunicaci?n entre los seres humanos y las computadoras. Estos lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute.

??????? Los lenguajes de computadoras toman diferentes formas; los de las primeras computadoras, como la ENIAC y la EDSAC, se compon?an en el lenguaje real de las m?quinas mismas. La dificultad de programar las m?quinas de esta manera limitaba dr?sticamente su utilidad y proporcionaba un fuerte incentivo para que se desarrollaran lenguajes de programaci?n m?s orientados hacia la expresi?n de soluciones con la notaci?n de los problemas mismos.

??????? Los primeros lenguajes de programaci?n se conocieron como Lenguajes Ensambladores, un ejemplo?es: TRANSCODE, desarrollado para la computadora FERUT. En los lenguajes ensambladores se define un c?digo especial llamado mnem?nico para cada una de las operaciones de la m?quina y se introduce una notaci?n especial para especificar el dato con el cual debe realizarse la operaci?n.

???????? A mediados de los a?os 60's aparecieron los primeros lenguajes de prop?sito general, que son en los que se basa este trabajo, como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C, C++, PASCAL, etc. pero el desarrollo de nuevas tecnolog?as, tanto en arquitectura de computadoras como en lenguajes de programaci?n, contin?a a paso acelerado, cada vez con mayor velocidad, el panorama est? cambiando de una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones individuales. Los lenguajes de programaci?n actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C.

? Relaci?n con las computadoras

A la vez que los lenguajes de programaci?n iban evolucionando, las computadoras tambi?n lo hac?an. Aunque los lenguajes de programaci?n, en la actualidad, tiendan a desligarse de las m?quinas en las que se van a usar para ser m?s universales, todo su desarrollo se ha basado en la capacidad de las m?quinas, en este caso los ordenadores, para poder soportar estos lenguajes. De no haber evolucionado las computadoras, los lenguajes no hubieran sido capaces de salvar por si solos las limitaciones que implica el hardware.

? Tipos

Hay varias formas de clasificar los lenguajes de programaci?n, y una de ellas ser?a por la cercan?a o lejan?a a la m?quina. De este modo podemos distinguir tres tipos de lenguajes:

- Lenguajes de bajo nivel: Son aquellos que se encuentran m?s cerca de la m?quina que del hombre. Esto significa que se acercan al lenguaje usado por el ordenador, ceros y unos. Por ejemplo: Ensamblador, C?digo m?quina, etc.

- Lenguajes de medio nivel: Se encuentran a medio camino de la m?quina y el hombre. Aglutinan las instrucciones complejas a etiquetas o nombres y que est?n compuestas por instrucciones sencillas.

- Lenguajes de alto nivel: La abstracci?n es mucho mayor, las instrucciones son muy complejas, estando m?s cerca del entendimiento humano que de la m?quina, y a diferencia del medio y bajo nivel son independientes de la plataforma.

Otra forma ser?a por su potencia:

- Primera Generaci?n: Lenguaje m?quina, no requiere traducci?n alguna, el compilador es capaz de leerlo directamente.

- Segunda Generaci?n: Lenguaje ensamblador dependiente de la m?quina, que requiere de una traducci?n, aunque esta es muy simple porque cada instrucci?n corresponde a un c?digo solamente.

- Tercera Generaci?n: Lenguajes de alto nivel, est?n dise?ados para ser usados por unos programadores profesionales y requieren especificaciones, con todas las posibles funciones, de c?mo realizar una tarea. Estos requieren de un n?mero grande de instrucciones con c?digos que pueden ser dif?ciles de leer, entender, mantener y depurar. Est?n originalmente desarrollados para operaciones por lote y orientados a archivos. Requieren de traducci?n y cada instrucci?n es convertida a varias instrucciones de m?quina. Con ellos el programador solo debe trabajar con el c?digo fuente desarrollado por el y no al c?digo objeto resultante.

- Cuarta Generaci?n: Lenguajes, m?s avanzados que los de alto nivel, que requieren la especificaci?n de la tarea a realizar y es el mismo sistema el que determina c?mo efectuarla. Ofrecen opciones predeterminadas que ya no se tienen que especificar lo que facilita que el programador no se enfrente a ning?n c?digo ya que siempre usa la interface. Requieren de traducci?n y cada instrucci?n es convertida en muchas instrucciones en lenguaje m?quina. Los errores son f?ciles de localizar.

Tambi?n se podr?an clasificar mediante su orientaci?n:

- Programaci?n orientada a eventos: programaci?n de aplicaci?n que responde a las entradas del usuario (seleccionando men?s, botones, formularios, etc...) o de otras aplicaciones a tiempos regulares.

- Programaci?n orientada a procedimientos: M?todo de programaci?n que requiere de una disciplina como FORTRAN, COBOL, BASIC; C, Pascal y Xbase,. El programador escribe el c?digo en cierto orden para resolver el problema, basado en sus conocimientos del proceso y de la programaci?n. La aplicaci?n resultante fuerza al usuario a seguir un camino predefinido desde el paso A al paso B. Un ejemplo t?pico es el ingreso de datos.

- Lenguaje orientado a problemas: Lenguaje de computaci?n dise?ado para manejar un problema particular. Ejemplos: FORTRAN fue dise?ado para ingenier?a, COBOL para negocios y GPSS para simulaciones.

- Programaci?n visual: Programas basados en herramientas visuales como men?s, botones, y cualquier elemento gr?fico, que se puede seleccionar de una paleta, se arrastra y se suelta donde se desea sobre la pantalla. Esto tambi?n puede referirse a poder conseguir el c?digo fuente interactuando con diagramas de flujo y gr?ficos l?gicos asociados a c?digos. Ej.: Visual BASIC, Visual FoxPRO, Visual C++...

- Programaci?n Orientada a Objetos (POO): Su objetivo es el aumentar la productividad del programador incrementando la extensibilidad y reutilizando el software, controlando la complejidad y el costo de mantenimiento. Ejemplos: C++, Turbo PASCAL, Power Builder...

Atras


(0)  | share
[ Comentarios ]