Lenguajes de programación, conceptos básicos


Desarrollo de Software

[lwptoc depth=»2″]

Programación

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.

lenguajes de programación

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

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++.

lenguajes de programación

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

IEDGE | Becas -100%

Además, hemos abierto el plazo de solicitud de BECAS -100% en los siguientes programas para profesionales: Máster en Marketing Digital, en el Máster en Growth Hacking & Marketing Automation, en el Máster en Digital Analytics & Big Data, en el Máster en eCommerce y en el Máster en Google Marketing Platform.

Cada año formamos a miles de alumnos en estas áreas de conocimiento. ¡Mejora en tu carrera profesional y solicita tu plaza!. Plazas limitadas por edición e IEDGE Business School se reserva el derecho de admisión.

    • Contenidos actualizados.
    • Profesores Internacionales.
    • Clases online en directo.
    • 6 meses de duración.

 

Abrir Whatsapp
¿Cómo podemos ayudarte?
© IEDGE AI Business School
Soy Laura Rodríguez, del Dpto. de Admisiones de IEDGE AI Business School. ¿Cómo puedo ayudarte?