IEDGE – Lenguajes de programación, conceptos básicos


1 Star2 Stars3 Stars4 Stars5 Stars (Valora este post)
Loading...

La programación consiste en proporcionar a un equipo un conjunto de instrucciones (o sentencias) que deben ser ejecutadas en orden, y que proporcionan una determinada funcionalidad al ordenador.

Internamente, los microprocesadores sólo entiende un conjunto reducido de operaciones básicas: aquellas que pertenecen a su conjunto de instrucciones. Estas instrucciones realizan tareas sencillas, como la suma de dos números, o el salto de una parte del programa a otro; para el profano parece imposible que con operaciones de tal sencillez se puedan construir complejos sistemas, tales como los que controlan el tráfico aéreo, o el intercambio de valores en bolsa.

La programación a más bajo nivel consiste en la codificación de las instrucciones básicas de procesador; es lo que se llama código máquina. Este método de codificación es lento y engorroso, y limita las posibilidades del programador. Por este motivo fueron creados los lenguajes ensambladores, que mediante una serie de comandos nemotécnicos facilitan el desarrollo y la depuración de los programas.

Sin embargo, a pesar de ser un importante avance, el lenguaje ensamblador no es apropiado para la gestión de proyectos de gran complejidad; rápidamente, el lenguaje ensamblador impone al programador demasiadas dificultades.

Por este motivo fueron creados los lenguajes de alto nivel, que libran al programador de ciertas tareas, y permiten gestionar una mayor complejidad.

Cuando se usa un lenguaje de alto nivel, un programa específico, llamado compilador  , traduce el código fuente al lenguaje ensamblador de la máquina-destino. Éste es ensamblado por un programa ensamblador , y se obtiene un archivo de código objeto, que contiene una mezcla de código ejecutable y de información necesaria para el paso siguiente: el enlazado. Finalmente, el enlazador crea el programa que consta de código ejecutable y datos

1.- Compiladores

Los compiladores son traductores que realizan su tarea globalmente, de forma que se analiza todo el programa fuente, se genera el código máquina correspondiente, y se almacena, todo de una vez.

Una vez realizada la traducción, el programa objeto, que se ha almacenado, se puede ejecutar tantas veces se quiera sin tener que volver a traducir. Así, el análisis, y la traducción, son secuenciales, y la ejecución es independiente.

En la etapa de generación de código se procede de forma similar a la de los intérpretes, teniendo en cuenta que se realiza sobre todo el programa. En la etapa de optimización se intenta encontrar un programa en lenguaje máquina que sea equivalente al que se ha generado, y que, además, sea más pequeño y más rápido. Aquí, el programa se almacena para su posterior ejecución.

Los compiladores permiten particionar el programa fuente en varios subprogramas. De esta forma, se usa el linker, que es una herramienta que toma como entrada varios subprogramas objeto, y devuelve un único programa objeto, llamado programa ejecutable. Generalmente, la mayor parte de estos subprogramas objetos serán de librerías e irán incluidos con el compilador.

Debido a la forma de traducir que utilizan los compiladores, estos tienen, básicamente, las siguientes características importantes:

  • Los programas objeto se ejecutan de forma muy rápida. Esto es debido a que, una vez traducido el programa fuente, no hay que volver a traducirlo cada vez que se ejecute.
  • Los programas objeto no se pueden detener, modificar el programa fuente, y continuar con la ejecución. Cada vez que se detienen hay que volver a ejecutar el programa de nuevo.
  • Los programas objeto pueden resultar, si no se han depurado exhaustivamente, poco robustos, pues no se hacen chequeos, durante la ejecución, de situaciones anómalas.
  • Difícilmente transportables entre distintas máquinas, puesto que es el programa objeto lo que se mueve. Suelen ser lenguajes cuyos programas objetos son dependientes de la máquina.

En general, se utilizan compiladores para lenguajes de bajo nivel, donde predomine la programación de sistemas y grandes volúmenes de cálculos. Un ejemplo de lenguaje compilado es C / C++.

2.- Intérpretes

Los intérpretes son traductores que realizan su tarea por bloques, de forma que se van analizando bloques del programa fuente, se genera el código máquina correspondiente, y se ejecuta.

Este ciclo se repite hasta que acaba el programa. Así, el análisis, la traducción, y la ejecución están fuertemente ligadas. Los bloques de traducción corresponden a una única instrucción.

En la etapa de generación de código se busca una combinación de instrucciones en lenguaje máquina que hagan exactamente lo mismo que haría la instrucción en lenguaje de alto nivel. A cada instrucción de alto nivel le suelen corresponder varias de lenguaje máquina, tantas más cuanto más compleja sea la instrucción. En la etapa de ejecución simplemente se pasa el control al código objeto generado hasta que termine. Aquí, el programa objeto sólo está almacena por trozos y por breves instantes de tiempo.

Debido a la forma de traducir que utilizan los intérpretes, estos tienen, básicamente, la siguiente serie de características importantes:

  • Los programas objeto se ejecutan de forma lenta. Esto es debido a que, además de ejecutar el código máquina, hay que realizar el análisis y la traducción de cada bloque, cada vez que se ejecute.
  • Los programas objeto se pueden detener, modificar el programa fuente, y continuar con la ejecución del nuevo programa objeto.
  • Los programas objeto son muy robustos, pues se pueden hacer chequeos, durante la ejecución, de situaciones anómalas y/o peligrosas.
  • Fácilmente transportables entre distintas máquinas, puesto que es el propio programa fuente lo que se mueve. Pueden ser lenguajes independientes de la máquina.

¡Muchas gracias y espero sus respuestas!

 

Francisco Pérez

Profesor de Dirección de Sistemas y Tecnologías de la Información

Nota: aprender de una forma práctica y rápida como poner en marcha, desarrollar y controlar planes de marketing interactivo, publicidad digital y comunicación online totalmente eficaces, les invitamos a que consulten la Especialidad Europea en Dirección de Sistemas y Tecnologías de la información.

* Los contenidos publicados en este post son responsabilidad exclusiva del Autor.

¡Pronto grandes sorpresas en Facebook, Twitter y Youtube!:

  • Síganos en Twitter
  • Hágase fan en Facebook (IEDGE – The European Business School es la Escuela de Negocios en español con mayor número de fans.. ¡Averigüe por qué!)
  • Acceda a nuestros videos en Youtube