25/08/2021 | Desarrollo de aplicaciones,Desarrollo de software,Sistema embebido,Tecnologías

¿Qué fue primero el programa o el compilador?

Hace tiempo lanzamos esta pregunta en nuestras redes sociales  («¿Qué fue antes, el programa o el compilador?«) y es por eso que hoy intentaremos encontrar una respuesta juntos. 

¿Qué es un compilador en programación?

Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación, definido «código fuente»,  a otro lenguaje de alto (COBOL, PASCAL, BASIC, C, etc.), medio o más bajo nivel (código intermedio o código máquina) como puede ser C/C++.

Por otro lado, un programa es el conjunto de instrucciones detalladas y codificadas que se dan a un ordenador para que realice o ejecute determinadas operaciones.

La importancia de los compiladores radica en que, sin estos programas no existiría ninguna aplicación informática, ya que son la base de la programación en cualquier plataforma. Es más, a partir del mismo código fuente, un compilador tiene la capacidad de producir código máquina en varias plataformas a la vez. 

Así que, por tanto, tenemos la paradoja de que para hacer un programa, necesitamos un compilador, que a su vez es un programa informático.

Es importante no confundir el compilador con un «intérprete». Al igual que el compilador, el intérprete traduce un programa fuente escrito en algún lenguaje de alto nivel, pero con la diferencia que cada instrucción es ejecutada inmediatamente, sin generar un programa en lenguaje de máquina.

Partes de un compilador

  • Front-end o Analizador

Se habla de «analizador» ya que se encarga de realizar el análisis del código fuente a compilar, lo valida e interactúa con el usuario. Además, suele ser independiente de la plataforma en la que se trabaja.

  • Back-end o Generador

Es la parte del compilador que, a partir de los resultados de análisis, se encarga de generar el código para la máquina según la plataforma específica.

Fases de análisis de un compilador

  • Análisis léxico:

Reconocimiento de los elementos del lenguaje, agrupados en componentes llamados «tokens».

  • Análisis sintáctico:

Los componentes léxicos ahora se agrupan jerárquicamente en frases gramaticales para analizar su estructura según reglas y patrones específicos.

  • Análisis semántico:

Se utiliza la estructura jerárquica determinada por la fase de análisis sintáctico para identificar eventuales errores  semánticos.

  • Generación del código intermedio:

Después de las fases de análisis, se genera una representación de código intermedio para una máquina abstracta.

  • Optimización del código:

Se mejora la representación de código intermedio para obtener un código más rápido de ejecutar.

¿Quién creó el primer compilador?

Grace Hopper, Doctora en Matemáticas y Almirante del Ejército Norteamericano.

Estaba convencida de que los ordenadores podían llegar a un público más amplio y comercial si los procedimientos para programar se volvían más amistosos y si pudieran ser entendibles para los no matemáticos.

Ella pensaba que los ordenadores se tenían que poder escribir en inglés.

En 1949, tras seguir su convicción, desarrolló una técnica que traducía los símbolos matemáticos a un código de instrucción binario y que era entendible por la máquina.

Esto no era otra cosa sino el primer programa compilador, que fue presentado 3 años más tarde por Hopper y su equipo.

Las bases de los lenguajes de programación modernos fueron establecidas desde ese momento.

¿Cuál fue el primer programa informático de la historia?

Pero, ¿y si nos preguntamos por el primer programa informático de la historia?, pues entonces es cuando nos tenemos que retrotraer al S.XIX, nada más y nada menos, ya que Ada Byron, alias Lady Lovelace, también conocida como “Ada Lovelace”, fue una matemática y escritora inglesa y está considerada como la primera programadora de la historia por sus trabajos en el primer algoritmo destinado a ser procesado por una máquina.

Así que si le hacemos caso a la historia, duda resuelta: primero fue el programa y después el compilador.

Desarrollo de software y programación embebida

En Tribalyte Technologies somos expertos desarrolladores de soluciones tecnológicas a medida. Consulta nuestros casos de éxito y contáctanos ahora mismo sin compromiso para cualquier necesidad.

Compartir en:

Relacionados