La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

El proceso de compilación

Presentaciones similares


Presentación del tema: "El proceso de compilación"— Transcripción de la presentación:

1 El proceso de compilación
Introducción

2 Partes del proceso de compilación
Análisis Programa fuente  Representación intermedia Síntesis Representación Intermedia  Programa objeto

3 Análisis del programa fuente
Análisis lexicográfico (LR – GR) Detecta palabras de los LR  lexemas Categoriza en Tokens (Categoría Léxica) Recibe Caracteres  Entrega Tokens Analizador Léxico  Scanner Análisis sintáctico (LIC – GIC) Recibe Tokens  Determina corrección de la construcción Analizador sintáctico  Parser Análisis semántico Semántica estática – Semántica en Tiempo de ejecución Todo lo que la LIC no puede verificar

4 Lenguaje Micro de Fischer
El ú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.

5 Definición de los Tokens
En el Programa Fuente Nombre del Token Inicio INICIO Fin FIN Leer LEER Escribir ESCRIBIR := ASIGNACIÓN ( PARENIZQUIERDO ) PARENDERECHO , COMA ; PUNTOYCOMA + SUMA - RESTA

6 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 ( ) , ;

7 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> )

8 Ejercicios De 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.

9 Próximos temas Analizador léxico para Micro El parser para Micro
El AFD para implementar el scanner El parser para Micro El 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)


Descargar ppt "El proceso de compilación"

Presentaciones similares


Anuncios Google