Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Compiladores Emmanuel Jesús Medina Vazquez Universidad Del Sur Compiladores Ing. Juan Pablo Cocom Solís
Compiladores Emmanuel Jesús Medina Vazquez Universidad Del Sur Compiladores Ing. Juan Pablo Cocom Solís
COMPILADORES
Compiladores
INTRODUCCIÓN
ejecutables por una computadora. Este proceso de traducción es crucial para que los
desarrolladores puedan expresar sus ideas de manera más comprensible y abstracta, mientras que
la máquina puede ejecutar las instrucciones de manera eficaz. Esta introducción aborda la
comprensión de estos aspectos es fundamental para aquellos que buscan adentrarse en el diseño y
la implementación de compiladores, así como para los desarrolladores de software que desean
Tabla de contenido
INTRODUCCIÓN......................................................................................................................................2
COMPILADORES.....................................................................................................................................4
Descripción General...............................................................................................................................4
Estructura lógica de un compilador......................................................................................................5
Fase Se Análisis (El Frontend El Compilador)..................................................................................5
Fase De Síntesis (El Backend El Compilador)...................................................................................6
Código Fuente.....................................................................................................................................6
Tabla De Símbolos...............................................................................................................................6
Tabla De Símbolos Al Final Del Análisis Léxico...............................................................................6
Manejador De Errores.........................................................................................................................7
Análisis Léxico....................................................................................................................................7
Análisis Léxico....................................................................................................................................7
Análisis Sintaxis..................................................................................................................................8
Análisis Sintáctico...............................................................................................................................8
Análisis Semántico..............................................................................................................................8
Generación De Código Intermedio.....................................................................................................8
Optimización De Código......................................................................................................................9
Generación De Código Objeto.............................................................................................................9
Código Máquina..................................................................................................................................9
Referencias................................................................................................................................................10
4
COMPILADORES
Descripción General
computadora que realiza dicha tarea. Normalmente, un compilador transforma código escrito en
un lenguaje de alto nivel como C++, Rust o Java en código ejecutable llamado código binario o
código máquina. WebAssembly, por ejemplo, es una forma de código binario ejecutable que
puede ser compilado desde código escrito en C++, Rust, C#, Go, Swift y muchos otros lenguajes
Tanto los compiladores como los intérpretes desempeñan un papel esencial al convertir el
código de software escrito a un formato ejecutable y legible por máquina. Esta traducción es
fundamental para permitir que los procesadores informáticos ejecuten programas en lenguajes
como C, C++, PHP, Python o Ruby, convirtiéndolos en componentes indispensables para el uso
Tabla 1
Intérprete Compilador
código la compilación
BASIC
Se le conoce como frontend, porque es donde se analiza la parte donde el código fuente es
leído y este es analizado tanta léxica, sintáctica y semánticamente y a partir de estos procesos es
que nace una representación intermedia del programa fuente y la creación de la tabla de símbolos
que serán los elementos de entrada en la fase de síntesis. Esta fase está compuesta por las
subfases de:
Análisis léxico. Hace referencia a que todas las palabras del lenguaje sean estructuras
Análisis Sintáctico. Que cada estructura respete las reglas gramaticales, es decir, tener un
Conocido como el back-end del compilador, la fase de síntesis genera al programa destino
Fase: una fase de un compilador es una etapa distinguible, que toma la entrada de la etapa
anterior, los procesos y los rendimientos de salida que puede ser utilizado como entrada para la
Código Fuente
Es un conjunto de líneas de texto con los pasos que debe seguir la computadora para
ejecutar dicho programa, el cual normalmente este hecho con lenguajes de programación de alto
nivel.
Tabla De Símbolos
utiliza a lo largo de todo el proceso de compilación. En ella se registran únicamente todos los
etc.
Tabla de símbolos al final de la fase de análisis semántico. Usando formato JSON para un
Manejador De Errores
Este elemento del compilador cumple con la tarea de identificar, clasificar y notificar o
incluso corregir los errores que se presenten a lo largo del proceso de compilación.
Análisis Léxico
En primer lugar, antes de definir esta etapa del proceso, vamos a definir dos partes muy
léxico no es más que un conjunto de palabras que el idioma ofrece a sus usuarios.
Análisis Léxico
En esta fase, se verifica que cada uno de los componentes léxicos (es decir las palabras)
fuente.
Análisis Sintaxis
Sintaxis
intuitivamente) utilizadas para precisar si una determinada cadena de palabras forma parte de una
oración válida.
Análisis Sintáctico
gráfica del lenguaje en el cual se presume fue escrito el programa. Para ello es indispensable
conocer la gramática del lenguaje. La principal herramienta utilizada en el análisis sintáctico son
Análisis Semántico
Cumple con la tarea de verificar que el código guarde coherencia en la aplicación de sus
Controles de ciclos
9
Realiza una primera traducción del código en el cual elimina aspectos característicos del
lenguaje de alto nivel, pero sin entrar en compilaciones de un lenguaje de bajo nivel. En este
ejecutará.
Optimización De Código
En esta fase se obtiene una versión mejorada pero equivalente del código, es decir,
logrando en la medida de lo posible mejorar el desempeño del programa y el suso óptimo de los
recursos como la memoria del CPU, pero sin alterar la funcionalidad de este.
cual se ejecutará.
Código Máquina
lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas
por la máquina. Este puede ser ceros o unos, o bien, código ensamblador.
10
Referencias
Aguilera, V. (2021, abril 17). Estructura general de un compilador - Vicente Aguilera. Medium.
https://vicente-aguilera-perez.medium.com/estructura-general-de-un-compilador-
df97892f91c3
Compilador e intérprete: definición y diferencias. (2020, junio 16). IONOS Digital Guide;
IONOS. https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/compilador-e-
interprete/
https://developer.mozilla.org/es/docs/Glossary/Compile