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
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:
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++.
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:
¡Muchas gracias y espero sus respuestas!
Profesor de Dirección de Sistemas y Tecnologías de la Información
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.