1. ¿Qué es un traductor?
Es un programa que recibe como entrada código escrito en un cierto lenguaje y produce como salida código en otro lenguaje.
2. Ejemplos de traductores
- Java
- C
- C++
- Pascal
3. ¿Qué es ensamblador?
Es un lenguaje de bajo nivel generado en código máquina manejado por 0 y 1.
4. Define un lenguaje de programación
- a) Lo que parecen sus programas (sintaxis del lenguaje)
- b) Lo que significa sus programas (semántica del lenguaje)
5. Estructura de un compilador
Código fuente → Preprocesador → Código ensamblador → Ensamblador → Librerías → Código objeto → Ligador → Código ejecutable
6. ¿En qué consiste la fase del análisis léxico?
Se leen los caracteres del programa fuente y se agrupan en cadenas que representan los componentes léxicos.
7. ¿Qué se realiza en la fase de análisis sintáctico?
Los componentes léxicos se agrupan en frases gramaticales que el compilador utiliza para sintetizar la salida.
8. ¿Qué se realiza en la fase del análisis semántico?
Se intenta detectar instrucciones que tengan la estructura sintáctica correcta pero que no tengan significado para la operación implicada.
9. ¿En qué consiste la fase de código intermedio?
Algunos compiladores generan una representación intermedia explícita del programa fuente una vez que se han realizado las fases de análisis.
10. ¿En qué consiste la generación de código?
Se genera el código objeto que, por lo general, consiste en código en lenguaje máquina (código relocalizable) o código en lenguaje ensamblador.
11. ¿Qué es la tabla de símbolos?
Es una estructura de datos que contiene un registro por cada identificador; el registro incluye los campos para los atributos del identificador.
12. ¿De qué se encarga el manejador de errores?
En cada fase del proceso de compilación es posible encontrar errores; es conveniente que el tratamiento de los errores se haga de manera centralizada a través de un manejador de errores.
13. ¿Con qué otro nombre es conocido el analizador léxico y qué realiza este?
Scanner, y este lee uno a uno los caracteres desde la entrada y va formando grupos de caracteres con alguna relación entre sí (tokens) que construirán la entrada para la siguiente etapa del compilador.
14. ¿Cómo se dividen los tokens y en qué consiste cada uno de ellos?
Tiras específicas, palabras reservadas, el punto y coma, la asignación, los operadores aritméticos o lógicos.
15. ¿Qué transformaciones realiza un analizador lineal?
- Transforma la secuencia de símbolos de entrada en una secuencia de componentes (símbolos) léxicos.
- Lee caracteres de entrada y los agrupa en secuencias que tienen significado dentro de la estructura sintáctica del lenguaje fuente.
16. Menciona las fases para la construcción de un analizador lineal
- Definición de todas las palabras reservadas.
- Construcción del autómata en base a las palabras reservadas.
- Construcción de la tabla de transiciones.
17. ¿En qué consiste el proceso de análisis léxico?
Se refiere al trabajo que realiza el scanner con relación al proceso de compilación.
18. ¿Cuál es el objetivo del PARSER?
Genera un árbol de sintaxis del programa fuente como ha sido definido por una gramática.
19. ¿Qué es un patrón?
Representa la regla para que una secuencia de caracteres sea considerada cierta unidad de léxico.
20. ¿Qué es un lexema?
El valor actual de un conjunto de caracteres que satisfacen un patrón.
21. ¿Qué es un token o ficha?
Valor asociado a una categoría o unidad de léxico.
22. ¿Qué son las unidades de léxico?
Categorías en que se clasifican las cadenas de caracteres válidos en un lenguaje.
23. ¿En qué consiste el rol del analizador léxico?
Hace su procesamiento y envía resultados al analizador gramatical, reúne símbolos y envía el token correspondiente a la unidad de léxico que conforma el analizador gramatical y espera una nueva solicitud de token.
24. Describe un patrón
- Mediante una descripción informal.
- Utilizando expresiones regulares.
- Utilizando autómatas finitos.
25. ¿Cómo se comporta un analizador léxico creado por PCLEX?
Desarrolla algunas herramientas para construir analizadores léxicos a partir de notaciones de propósitos especiales basadas en expresiones regulares.
26. ¿Cómo se llama el lenguaje que maneja LEX?
R = lenguaje LEX.
27. ¿Qué es el lenguaje LEX?
Es aquel que permite expresar expresiones regulares y la acción de tomar al encontrar cada uno de ellos.
28. ¿Cuáles son los pasos para recrear un analizador léxico?
- Construir el puente en LEX.
- Compilar con LEX.
- Compilar con un compilador C.
29. ¿Cuál es el formato de un programa en LEX?
Es área de definiciones LEX.
- %% /* Es el único obligatorio en todo el programa */
- %% área de reglas.
- %% área de funciones.
30. ¿Cuáles son las premisas de LEX para reconocer lexemas?
- LEX toma siempre el lexema más largo posible.
- En caso de conflicto, toma siempre el patrón que aparezca en primera posición.
31. ¿Cuáles son los caracteres especiales que maneja?
- “: Sirve para encerrar cualquier cadena de literales.
- “(*”: Comentario de MODULA2.
- “: Hace literal al siguiente carácter.
- [ ]: Indican clases de caracteres.
- -: Indica rango.