Вы находитесь на странице: 1из 8

FASES DE UN COMPILADOR

Un compilador es un programa informático que traduce un programa escrito en


un lenguaje de programación a otro lenguaje de programación, generando un
programa equivalente que la máquina será capaz de interpretar

1. ANALIZADOR LEXICO
1.1. OBJETIVO:

Es leer el flujo de caracteres de entrada y transformarlo en una secuencia de


componentes léxicos (tokens) que serán entregados y utilizados por el analizador
sintáctico.

1.2. FUNCIONES

Eliminar los comentarios del programa.


Eliminar espacios en blanco.
Reconocer los identificadores y palabras claves.
Avisar de errores léxicos.

1.3. CATEGORIAS LEXICAS


Palabras reservadas
Constantes de carácter
Identificadores
Constantes numéricos
Símbolos especiales
Operadores

1.4. LABOR DEL ANALIZADOR LEXICO

Inclusión de archivos y macros.


Contabilizar número de líneas y columnas
Facilitar la transportabilidad del traductor

1.5. COMPONENTES LEXICOS

Es la secuencia lógica y coherente de caracteres relativo a una categoría:


Identificador, palabra reservada, literales (cadena/numérica).

1.6. PATRON

Es una regla que genera la secuencia de caracteres que puede representar


a un determinado componente léxico (expresión regular).
1.7. LEXEMA

Es una cadena de caracteres que concuerda con un patrón que describe un


componente léxico.

1.8. MANEJO DE BUFFER DE ENTRADA

PRIMERO: Se menciona un esquema de doble buffer de entrada que


resulta útil como pre-análisis de la entrada para identificar los
componentes léxicos.

SEGUNDO: Esquema introduce algunas técnicas útiles para


aumentar la eficiencia del analizador léxico, empleando
“centinelas”.

1.9. ESPECIFICACIONES DE COMPONENTES LEXICAS

ALFABETO: Cualquier conjunto finito de símbolos. Ejm. El conjunto


{0,1} es el alfabeto binario.

CADENA: Es una secuencia finita de símbolos tomados de ese


alfabeto.

1.10. CONCLUSIONES

El analizador léxico opera bajo petición del analizador sintáctico,


devolviendo un componente léxico conforme el analizador
sintáctico lo va necesitando para avanzar en la gramática.

El analizador léxico nos sirve para declarar los tokens que puede
recibir nuestra expresión, y nos muestra cada uno de los tokens de
la expresión.

La etapa de análisis léxico, constituye una parte importante del


proceso de compilación ya que su salida es la entrada para las
demás etapas de dicho proceso.

El tratamiento de errores a nivel léxico es muy simple.


2. ANALIZADOR SINTÁCTICO

2.1. DEFINICIÓN

El analizador sintáctico utiliza los primeros componentes de los tokens


producidos por el analizador léxico para crear una representación
intermedia en forma de árbol que describa la estructura gramatical del flujo
de tokens.

2.2. FUNCIONES

Obtiene los tokens provenientes del analizador léxico.


Comprueba si el token puede ser generado por el lenguaje fuente.
Informa de cualquier error y debe ser capaz de recuperarse.

2.3. OBJETIVOS DEL MANEJO DE ERRORES SINTÁCTICOS

Reportar la presencia de errores con claridad y precisión.


Recuperarse de cada error lo bastante rápido para poder detectar los
errores siguientes.
Sobrecargar mínimamente el proceso de compilación.

2.4. COSTRUYA LA TABLA DE ANALISIS SINTÁCTICO


2.5. CUALES SON LOS TIPOS DE ANALISIS SINTÁCTICO

 DESCENDENTES:
- CON RETROCESO
- CON RECURSION
- GRAMATICAS LL1()
 ASCENDENTES:
- CON RETROCESO
- GRAMATICAS LR(1)

2.6. QUE ES UN ARBOL SINTACTICO

Es una representación que se utiliza para describir el proceso de derivación


de dicha sentencia.

2.7. CUAL ES EL TIPO DE GRAMATICA CON QUE TRABAJA EL ANALIZADOR


ESTATICO, DE UN EJEMPLO.

Gramáticas LR(1) : utilizada para procesar una amplia clase de gramáticas


de contexto libre.

2.8. CUALES SON LOS DIAGRAMAS QUE UTILIZA EL A.S.


ALGORITMO DE COCKE – YOUNGER – KASAMI / ALGORITMO DE EARLEY, ARBOL SINTACTICO

2.9. CUAL ES LA FUNCION PRINCIPAL DEL ANALIZADOR SINTÁCTICO.

Comprueba si el token puede ser generado por el lenguaje fuente.

2.10. TIPOS DE ANALIZADORES SINTACTICOS Y QUE DIAGRAMAS USA.

Universales: ALGORITMO DE COCKE – YOUNGER – KASAMI / ALGORITMO DE EARLEY.


Descendentes: DE LA PARTE SUPERIOR (RAIZ) A LA PARTE INFERIOR (HOJAS).
Ascendentes: EMPIEZAN EN LAS HOJAS Y VAN A LA RAIZ.

2.11. EXPLIQUE LOS TIPOS DE ERRORES QUE GENERA EL ANALIZADOR


SINTÁCTICO

 ERROR LEXICO: La escritura incorrecta de identificadores, palabras


clave u operadores.
 ERROR SINTÁCTICO: La colocación incorrecta de los signos punto y
coma, además de las llaves faltantes.
 ERROR SEMÁNTICO: Incluyen los conflictos de tipos entre los
operadores y los operandos.
 ERRORES LOGICOS: Se dan por un razonamiento incorrecto.

2.12. CUALES SON LAS OPERACIONES QUE APLICAN LOS ANA.SIN. CUANDO
TRABAJA, EXPLIQUE CADA UNO.

2.13. QUE ES UN GENERADOR SNTACTICO

Un generador de analizadores sintácticos, es un programa que convierte


una gramática en un programa (analizador sintáctico) que puede reconocer
el lenguaje que describe dicha gramática

3. ANALIZADOR SEMANTICO

3.1. QUE ES EL ANALIZADOR SEMATICO Y POR QUE SE NECESITA


3.2. QUE ES LA INTERFAZ SEMANTICA
3.3. QUE HACE EL ANALIZADOR SEMANTICO

4. GENERACION DE CODIGO INTERMEDIO

4.1. QUE ES CODIGO INTERMEDIO

Es un código abstracto independiente de la máquina para la que se


generará el código objeto.

4.2. QUE ES UNA MQUINA ABSTRACTA

Es un modelo teórico de un sistema computador de hardware o software


usado en la teoría de autómatas.

4.3. EXPLIQUE LA ARQUITECTURA TIPICA DE UNA MAQUINA ABSTRACTA

 MAQUINAS BASADAS EN PILA: Modelo computacional en el cual la


memoria de la computadora toma la forma de una o mas pilas.
 BASADAS EN REGISTROS: Modelo más general para las instrucciones
de código parecidas.
 ORIENTADAS A OBJETOS: Es simplemente una que se describe en
términos de objetos, clases, atributos, servicios, etc.

4.4. CUALES SON LAS VENTAJAS DE GENERAR CODIGO INTERMEDIO

 Facilitar la fase de optimización.


 Aumentar la portabilidad del compilador de una maquina a otra.
 Facilitar la división en fases del proyecto.

4.5. CUALES SON LOS TIPOS DE REPRESENTACIONES INTERMEDIAS


EXPLIQUE CUALES

 ARBOLES DE SINTAXIS ABSTRACTA: Es un código abstracto


independiente de la máquina para la que se generará el código objeto.
 NOTACIÓN POLACA INVERSA (RPN): Es aquella notación postfija con
los operadores situados a continuación de los operandos.

 CÓDIGO DE TRES DIRECCIONES: Es una secuencia de preposiciones de


forma:

 CÓDIGO P: El código P muestra sus orígenes de pascal, en el cual no


existen las asignaciones incrustadas

5. TABLA DE SIMBOLOS – GESTION DE ERRORES

5.1. QUE ES UN TABLA DE SIMBOLO

La tabla de símbolos es una estructura de datos que contiene toda la


información relativa a cada identificador que aparece en el programa
fuente.

5.2. QUE ES LO QUE SE LAMACENA EN UNA TABLA DE SIMBOLOS

Contiene información sobre objetos que van apareciendo en un texto de


entrada, que el compilador necesita guardar y usar.
5.3. QUE DETERMINA EL COMPILADOR CON LA TABLA DE SIMBOLOS

5.4. CUALES SON LAS CARACTERISTICAS DE LA TABLA DE SIMBOLOS

Guarda varios objetos y su información más importante.


Su tamaño y tipo depende del número de la información y los objetos a
guardar.
Por ser una estructura de datos, existe una amplia gama de medio para
implementarla.

5.5. CUAL ES LA ESTRUTURA LÓGICA DE UNA TABLA DE SIMBOLOS BÁSICA.

La primera columna contendría el identificador de cada símbolo: nombre


de variable, función, etc. En la segunda habría una lista de atributos
mediante los que se obtiene información sobre el símbolo.

5.6. POR QUE ALGUNOS LENGUAJES CONSERVAN LA TABLA DE SÍMBOLOS EN LA


EJECUCIÓN, PARA QUE SIRVE.

5.7. DIFERENCIAS ENTRE LOS TIPOS DE OPERACIONES CON LA TABLAS DE


SIMBOLOS

DIFERENCIAS
BUSQUEDA/CONSULTA ACTUALIZACIÓN INSERCIÓN BORRADO
Es la operación que localizar cada Una vez creada la Se produce
más se repite en símbolo y tabla de símbolos cuando un
todas las fases, a fin actualizarlo hay que símbolo queda
de comprobar si un introducir en ella fuera de ámbito
símbolo ya existe o las parejas a
y, por tanto,
ha de insertarse medida que se
deja de existir.
como nuevo analiza el código
fuente

5.8. POR QUE SE UTLIZAN LAS TABLAS HASH EN LA IMPLEMENTACION DE


TABLAS DE SIMBOLOS

Hacen posible mantener tablas de datos con acceso por clave con un orden
de eficiencia teórico de O (1) para todas las operaciones.
5.9. QUE CRITERIOS SE TIENE EN CUENTA PARA ELIGIR EL TIPO DE ESTRUCTURA
SOBRE LE CUAL SE IMPLENTARA LA TABLA DE SMBOLOS.

5.10. MENCIONAR LAS ESTRUCTURAS SUBYASENTES PARA IMPLENTAR UNA


TABLA DE SIMBLOS
5.11. DENTRO DE UNA ESTRUCTURA HASH QUE ES UNA COLISIÓN.
5.12. COMO SE GENERA LA CLAVE HASH (VER UN ALGORITMO EN LAS
DIPOSITIVAS DE DAVID)

5.13. CUANDO SE PRESENTA UNA COLISION Y COMO SE SOLUCIONA EN LA


IMPLEMENTACIÓN DE UNA TABLA DE SIMBOLOS CON ESTRUCTURA HASH
5.14. QUES EL MANEJADOR DE ERRORES.
5.15. QUE DEBE HACER UN BUEN COMPILADOR

6. OPTIMIZACION DE CODIGO
7. GENERACION DE CODIGO OBJETO O FINAL
8. GESTION DE MEMORIA DURANTE LA COMPILACION

Вам также может понравиться