Compilador

Se llama “compiladores” a determinados programas informáticos que se encargan de la traducción de otros programas, que fueron escritos en lenguaje de programación. Se trata de un lenguaje formal, que es ampliamente utilizado para el control físico y lógico de una máquina, como una computadora, además de la expresión de algoritmos precisos; este está constituido por una serie de aspectos semánticos y sintácticos, además de simbólicos, que le dan significado a los enunciados que con este se formulan. Cuando pasa por un proceso de compilación, este puede convertirse en lenguaje de máquina, interpretable por microprocesadores, o en bytecode, un código intermedio, a menudo analizado como un archivo binario.

Con la creación de la primera computadora digital, en el año 1946, se inició el uso de unas serie de códigos numéricos consistentes, que indicaban a los circuitos qué operaciones llevar a cabo. Sin embargo, al momento de escribir programas, los investigadores se percataron de que era mucho más fácil emplear un lenguaje ensamblador, el cual resultaba de mucho más fácil manejo; posteriormente, este era traducido manualmente. En el año 1952, Grace Hopper, escribió el primer compilador de la historia. En el año 1954, se desarrolló el FORTRAN, se desarrolló un compilador capaz de traducir fórmula matemáticas para un ordenador; sin embargo, este tardó 18 años en ser perfeccionado.
Existen cinco tipos de compiladores, como lo son: los cruzados, que se caracterizan por generar lenguaje distinto al que utilizan; los optimizadores, se encargan de mejorar la eficiencia de un programa; de una sola pasada, es decir, sólo analizan el código fuente una vez; de varias pasadas, que leen el código fuente múltiples veces antes de poder traducir; los JIT, o Just In Time, que cumplen la función de intérprete sólo en algunas partes del texto. En cuanto al proceso, se divide en dos etapas: el de análisis, en donde se analizan los aspectos formales del lenguaje de programación, y el de síntesis, cuando finalmente se genera el código. Análogamente ocurren dos procesos, el front-end, en que se analizan los símbolos y se comprueba la validez de estos, y el back-end, caracterizado por la adaptación del lenguaje en dependencia de la máquina.