martes, 20 de marzo de 2012

LENGUAJES DE PROGRAMACIÓN

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se pruebase depurase compila y se mantiene el código fuente de un programa informático se le llama programación. 



CLASIFICACIÓN DE LENGUAJES DE PROGRAMACIÓN

Lenguajes de programación de bajo nivel: Son mucho mas fáciles de utilizar que el lenguaje máquina, pero dependen mucho de la máquina o computadora como sucedía con el lenguaje máquina. El lenguaje ensamblador fue el primer lenguaje de programación que trato de sustituir el lenguaje máquina por otro mucho más parecido al de los seres humanos.

 Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación son independientes de la máquina, lo podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan de un programa interprete o compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora pueda entender.


 

                       LENGUAJES DE PROGRAMACIÓN POR SU GENERACIÓN


Lenguajes de primera generación (1GL): Código máquina.

Lenguajes de segunda generación (2GL): Lenguajes ensamblador.

Lenguajes de tercera generación (3GL): La mayoría de los lenguajes modernos, diseñados para facilitar la programación a los humanos. Ejemplos: C, Java.

Lenguajes de cuarta generación (4GL): Diseñados con un propósito concreto, o sea, para abordar un tipo concreto de problemas. Ejemplos:NATURAL, Mathematica.


Lenguajes de quinta generación (5GL): La intención es que el programador establezca el qué problema ha de ser resuelto y las condiciones a reunir, y la máquina lo resuelve. Se usan en inteligencia artificial. Ejemplo: Prolog.

         LENGUAJES DE PROGRAMACIÓN SEGÚN SU GRADO DE DEPENDENCIA DE LA MÁQUINA

 El lenguaje máquina es la forma más baja de un lenguaje de programación. Cada instrucción en un programa se representa por un código numérico, y unas direcciones (que son otros códigos numéricos) que se utiliza para referir las asignaciones de memoria del ordenador. El lenguaje máquina es la notación que entiende directamente el ordenador, está en binario o en notación hexadecimal, y el repertorio de sus instrucciones, así como la estructura de éstas, están ligadas directamente a la arquitectura de la máquina. 

El lenguaje ensamblador es esencialmente una versión simbólica de un lenguaje máquina. Cada código de operación se indica por un código simbólico. Por ejemplo ADD para adición y MUL para multiplicación. Además, las asignaciones de memoria se dan con nombres simbólicos,tales como PAGO y COBRO. 

Los lenguajes de medio nivel tienen algunas de las características de los lenguajes de bajo nivel (posibilidad de acceso directo a posiciones de memoria, indicaciones para que ciertas variables se almacenen en los registros del microprocesador, etc...) añadidas a las posibilidades de manejo de estructuras de control y de datos de los lenguajes de alto nivel. Ejemplos de este tipo de lenguajes son el C [KERN78, KERN88] y el FORTH [KELL86]. 

Los lenguajes de alto nivel tales como FORTRAN [ANSI89, CUEV93b], COBOL [ANSI74], Pascal [JENS91, CUEV94A],... tienen características superiores a los lenguajes de tipo ensamblador, aunque no tienen algunas posibilidades de acceso directo al sistema. Facilitan la escritura de programas con estructuras de datos complejas, la utilización de bloques, y procedimientos o subrutinas. Dentro de los lenguajes de alto nivel se pueden destacar un tipo de lenguajes, denominados lenguajes orientados a objetos, que permiten definir tipos abstractos de datos (habitualmente denominados clases) que agrupan datos y métodos (operadores, funciones y procedimientos). Los objetos son la instanciación de una clase. 


LENGUAJES DE BAJO NIVEL

VENTAJAS
  •    Velocidad
  •   Eficiencia de tamaño 
  •   Flexibilidad
DESVENTAJAS

  • Tiempo de programación
  • Programas fuentes grandes
  • Peligro de afectar recursos inesperados
  • Falta de portabilidad




LENGUAJES DE ALTO NIVEL

VENTAJAS
  • Mucho mas fácil de comprender que un lenguaje máquina
  • Permite mayor portabilidad, puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos. 


DESVENTAJAS

  • La comodidad del programador se paga en mayores tamaños de los ficheros ejecutables, y consecuentemente en mayores tiempos de compilación y de ejecución. 
  • El lector puede comprobar que los tiempos de compilación y ejecución también se van incrementando según se va ascendiendo en el nivel del lenguaje.