El proceso de compilación

9
El proceso de compilación Introducción

description

El proceso de compilación. Introducción. Partes del proceso de compilación. Análisis Programa fuente  Representación intermedia Síntesis Representación Intermedia  Programa objeto. Análisis del programa fuente. Análisis lexicográfico (LR – GR) Detecta palabras de los LR  lexemas - PowerPoint PPT Presentation

Transcript of El proceso de compilación

Page 1: El proceso de compilación

El proceso de compilaciónIntroducción

Page 2: El proceso de compilación

Partes del proceso de compilación

Análisis Programa fuente Representación intermedia

SíntesisRepresentación Intermedia Programa objeto

Page 3: El proceso de compilación

Análisis del programa fuenteAnálisis lexicográfico (LR – GR)

Detecta palabras de los LR lexemasCategoriza en Tokens (Categoría Léxica)Recibe Caracteres Entrega TokensAnalizador Léxico Scanner

Análisis sintáctico (LIC – GIC)Recibe Tokens Determina corrección de la

construcciónAnalizador sintáctico Parser

Análisis semánticoSemántica estática – Semántica en Tiempo de

ejecuciónTodo lo que la LIC no puede verificar

Page 4: El proceso de compilación

Lenguaje Micro de FischerEl único tipo de dato es entero.Los identificadores son declarados implícitamente. Longitud máxima de 32

caracteres.Los identificadores comienzan con una letra y están compuestos de letras y

dígitos.Las constantes son secuencias de dígitos (números enteros).Hay dos tipos de sentencias: Asignación ID := Expresión;

Expresión es infija y se construye con identificadores, constantes y los operadores + y –; los paréntesis están permitidos.

Entrada/Salida leer (lista de IDs); escribir (lista de Expresiones);

Cada sentencia termina con un "punto y coma" (;). El cuerpo de un programa está delimitado por inicio y fin.inicio, fin, leer y escribir son palabras reservadas y deben escribirse en

minúscula.

Page 5: El proceso de compilación

Definición de los TokensEn el Programa Fuente Nombre del TokenInicio INICIOFin FINLeer LEEREscribir ESCRIBIR:= ASIGNACIÓN( PARENIZQUIERDO) PARENDERECHO, COMA; PUNTOYCOMA+ SUMA- RESTA

Page 6: El proceso de compilación

Gramática Léxica<token> -> uno de <identificador> <constante>

<palabraReservada> <operadorAditivo> <asignación> <carácterPuntuación>

<identificador> -> <letra> {<letra o dígito>}<constante> -> <dígito> {dígito>}<letra o dígito> -> uno de <letra> <dígito><letra> -> una de a-z A-Z<dígito> -> uno de 0-9<palabraReservada> -> una de inicio fin leer escribir<operadorAditivo> -> uno de + -<asignación> -> :=<carácterPuntuación> -> uno de ( ) , ;

Page 7: El proceso de compilación

Gramática Sintáctica<programa> -> inicio <listaSentencias> fin<listaSentencias> -> <sentencia> {<sentencia>}<sentencia> -> <identificador> := <expresión> ; |leer ( <listaIdentificadores> ) ; | escribir ( <listaExpresiones>

) ;<listaIdentificadores> -> <identificador> {, <identificador>}<listaExpresiones> -> <expresión> {, <expresión>}<expresión> -> <primaria> {<operadorAditivo>

<primaria>}<primaria> -> <identificador> | <constante> | ( <expresión>

)

Page 8: El proceso de compilación

EjerciciosDe las gramáticas dadas informe:

el conjunto de noterminales, el conjunto de terminales, el conjunto de metasímbolos

En base a las gramáticas descriptas:escriba un programa en Micro que sea mínimo y

correcto.escriba un programa correcto que utilice todos los

elementos definidos. Informe si := es un operador. Justifique su

respuesta.

Page 9: El proceso de compilación

Próximos temasAnalizador léxico para Micro

El AFD para implementar el scanner

El parser para MicroEl Análisis Sintáctico Descendente Recursivo

(ASDR)El Árbol de Análisis Sintáctico (AAS)El Procedimiento de Análisis Sintáctico (PAS) El procedimiento Match(t)