Fases del compilador: análisis léxico, sintáctico, semántico y representaciones intermedias
Clasificado en Informática
Escrito el en
español con un tamaño de 18,5 KB
Actualizado el
Resumen
Este documento recoge preguntas y respuestas sobre compiladores: su definición, las herramientas que intervienen (scanner, parser, analizador semántico, enlazador) y el proceso de traducción de código fuente a código objeto. Además, enumera las fases de compilación, los tipos de compiladores, las partes front-end y back-end, las representaciones intermedias y la tabla de símbolos. Algunos ejercicios aparecen sin respuesta completa.
Puntos clave
- La compilación es el proceso que traduce programas escritos en código fuente a código objeto.
- El scanner (analizador léxico) divide el programa en símbolos y genera la tabla de símbolos.
- El parser (analizador sintáctico) usa una gramática para recuperar la estructura sintáctica de la oración.
- Las fases son: análisis léxico, sintáctico, semántico, generación de código intermedio, optimización y generación de código objeto.
- Los tipos de compiladores son cruzados, optimizadores, de una sola pasada, de varias pasadas y JIT.
- Las representaciones intermedias posibles son tercetos, cuádruplos (cuartetos) y notación polaca inversa (RPN).
Resumen generado con IA a partir del documento. Ponte a prueba
Preguntas y respuestas sobre compiladores
Definiciones y funciones básicas
Pregunta: ¿Es el proceso por el cual se traducen programas en código fuente a programas en código objeto?
R = compilación
Pregunta: Toma el programa escrito en código fuente y lo divide en símbolos, generando la llamada tabla de símbolos.
R = scanner (analizador léxico)
Pregunta: ¿Es un programa que toma los ficheros de código objeto generados en los primeros pasos del proceso de compilación?
R = enlazador (linker)
Pregunta: ¿Toma la tabla de símbolos y, mediante el uso de una gramática, recupera la estructura sintáctica de la oración?
R = parser (analizador sintáctico)
Pregunta: ¿Chequea el programa fuente para detectar posibles errores semánticos y verifica la compatibilidad de tipos?
R = analizador semántico
Pregunta: ¿Es la representación del código fuente como un programa escrito para ser ejecutado en una máquina abstracta?
R = código intermedio
Pregunta: Asigna una variable al registro.
R =
Pregunta: Identifica ciclo como un rótulo o etiqueta.
R =
Pregunta: Cambia A + 4 * 3 a A + 12.
R =
Pregunta: Encuentra una variable que no ha sido declarada.
R =
Pregunta: Cambia A := A + 12 a suma#12,A.
R =
Pregunta: Crea un árbol de análisis gramatical.
R =
Fases del proceso de compilación
Pregunta: Menciona las fases del proceso de compilación.
R = análisis léxico, análisis sintáctico, análisis semántico, generación de código intermedio, optimización, generación de código objeto
Ejercicio: tokens
Pregunta: Encontrar y representar todos los tokens para un programa compuesto de la asignación única:
max := min + 4 * 3;
R =
Tipos de compiladores
Pregunta: Menciona los tipos de compiladores que existen.
R = compiladores cruzados, optimizadores, de una sola pasada, de varias pasadas y JIT (just-in-time)
Partes de un compilador
Pregunta: Menciona y describe las partes de un compilador.
- Front-end: Es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores en la tabla de símbolos.
- Back-end: Es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis realizada por el front-end.
Ejercicio: árbol sintáctico
Pregunta: Realizar el árbol sintáctico de la siguiente expresión.
R =
Representaciones intermedias
Pregunta: Mencione las posibles representaciones intermedias.
R = tercetos, cuádruplos (cuartetos) y notación polaca inversa (RPN)
Tabla de símbolos
Pregunta: ¿Es una estructura de datos que contiene un registro para cada identificador utilizado en el código fuente?
R =
Estructura general del compilador
Pregunta: Dibuje la estructura general de un compilador.
R =
Preguntas frecuentes
¿Qué es la compilación?
Es el proceso por el cual se traducen programas escritos en código fuente a programas en código objeto.
¿Cuáles son las fases del proceso de compilación?
Las fases son análisis léxico, análisis sintáctico, análisis semántico, generación de código intermedio, optimización y generación de código objeto.
¿Qué representaciones intermedias existen en un compilador?
Se mencionan los tercetos, los cuádruplos (cuartetos) y la notación polaca inversa (RPN).
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.