El proceso de compilación

Slides:



Advertisements
Presentaciones similares
Ejemplo Práctico de un Compilador Pequeño
Advertisements

Infijo a postfijo Expr -> Expr + Término Expr -> Expr - Término
Análisis Sintáctico Capítulo 4.
Filminas Segunda semana
Compiladores e intérpretes Análisis Sintáctico II
Compiladores e intérpretes Generación de código intermedio II
Compiladores e intérpretes
Prof. Ing.Maria Rosa Damaso Rios
Análisis Lexicográfico
¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a un programa objeto en código máquina.
Teoría de Autómatas y Compiladores
Facultad de Ciencias de la Computación
UNIDAD II: ALGORITMOS Y LENGUAJES
Elementos básicos del Lenguaje
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
Traducción dirigida por la Sintaxis
Teoría de lenguajes y compiladores
Funciones en lenguaje C
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
Teoría de lenguajes y compiladores
Programación de sistemas
Fundamentos de Programación
CONDICIONES DE LA MATERIA
M.C. Meliza Contreras González
Procesadores del Lenguaje
M.C. Juan Carlos Olivares Rojas
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Teoría de lenguajes y compiladores
Cobol C Pascal Fortran 1. INTRODUCCIÓN SmallTalk Java C++
FUNDAMENTOS DE PROGRAMACION
INGENIERIA EN SISTEMAS COMPUTACIONALES
ANALISIS SINTACTICO Parte I
Resumen de Compilación Preparado por Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Traducido por Christian Torres Universidad Ricardo.
Cátedra de COMPUTACIÓN FACULTAD DE INGENIERÍA - UNA La mejor manera de aprender Programación es PROGRAMANDO !!!!!! CLASE Nro. 2.
Clasificación de Gramáticas y Manejo de Errores
Compiladores (23/04/ :35) Compiladores Tema 3 Análisis Lexicográfico Scanners.
Universidad Nacional de Jujuy Facultad de Ingeniería
FORMA INTERNA DE REPRESENTAR
Teoría de lenguajes y compiladores
Procesadores de Lenguajes
Todo traductor esta basado en una gramática para el lenguaje fuente. Todo traductor esta basado en una gramática para el lenguaje fuente. Una gramática.
Introducción al Análisis Sintáctico
Teoría de lenguajes y compiladores Analizadores lexicográficos
Programación de Sistemas
Tema 1. Introducción y Conceptos Básicos
Análisis Léxico Área Software de Base.
INFORMATICA VII (Programación e implementación de sistemas)
Expresiones Lógicas Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Programación de Sistemas FEI – 2008
Unidad 1. Introducción a los Compiladores.
Teoría de lenguajes y compiladores
UNIVERSIDAD LATINA (UNILA)
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Teoría de lenguajes y compiladores
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Autómatas y Compiladores Novena Semana. Ricardo Vargas Del Valle A35469.
Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
Preposición: suma= var1 + var2 + 10; Análisis Léxico El analizador léxico lee los caracteres del programa fuente, y verifica que correspondan a una secuencia.
PRINCIPIOS DE PROGRAMACIÓN
Es un tipo especial de software que nos permite *Crear *Desarrollar *Programar otras aplicaciones. Haciendo uso de sus conocimientos lógicos y lenguajes.
Lic. Carla Aguirre Montalvo
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
Autómatas y Compiladores. Segunda Semana. Ricardo Vargas Del Valle A35469.
Conceptos y Lenguaje Imperativo
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
Sintaxis y Semántica. S.Takahashi Fases en el proceso de análisis de lenguajes Lexer Parser caracteres tokensrespuesta.
Transcripción de la presentación:

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

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.

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

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

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

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.

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)