Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.

Slides:



Advertisements
Presentaciones similares
Filminas Segunda semana
Advertisements

Filminas Tercera Semana CI-1322 Autómatas y Compiladores Elaborado por: Sergio Pastrana Espinoza A33888.
Compiladores e intérpretes Análisis Sintáctico II
Compiladores e intérpretes Generación de código intermedio II
Compiladores e intérpretes
Compiladores e intérpretes Análisis Sintáctico III
Prof. Ing.Maria Rosa Damaso Rios
Cb00843 Traductores Rogelio Dávila Pérez Profesor Planta
Gramáticas Libres de Contexto
Análisis Lexicográfico
Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones.
¿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
Analizadores Sintácticos Descendentes Predictivos
APLICACIONES DE AUTOMATAS Y EXPRESIONES REGULARES
Teoría de lenguajes y compiladores
Compilador HTML David Morales Marco Jiménez Carlos Márquez
Traducción dirigida por la Sintaxis
Teoría de lenguajes y compiladores
Análisis Semántico y Chequeo de Tipos
Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.
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
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
Programación de sistemas
CONDICIONES DE LA MATERIA
M.C. Meliza Contreras González
Análisis sintáctico LR: SLR (LR simple)
Procesadores del Lenguaje
Teoría de lenguajes y compiladores
2º curso Ingeniería Técnica en Informática de Sistemas UNED
FUNDAMENTOS DE PROGRAMACION
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.
Compiladores Introducción Oscar Bonilla Universidad Galileo.
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
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)
Teoría de Autómatas y Lenguajes Formales Informática Técnica de Gestión ESCUELA SUPERIOR DE INFORMATICA Universidad de Castilla-La Mancha Tema 1. Introducción.
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.
Programación de Sistemas FEI – 2008
Unidad 1. Introducción a los 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
Autómatas y Compiladores Novena Semana. Ricardo Vargas Del Valle A35469.
Teoría de lenguajes y compiladores
Autómatas y Compiladores. Tercera Semana. Ricardo Vargas Del Valle A35469.
El proceso de compilación
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
Conceptos y Lenguaje Imperativo
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION SUPERIOR UNIVERSIDAD VALLE DEL MOMBOY CARVAJAL EDO. TRUJILLO ENERO 2014.
República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Universidad Valle del Momboy Carvajal, Trujillo Alumnas Luzmila.
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.
Compiladores Introducción al Análisis Sintáctico Gramáticas de Contexto Libre, Arboles de Parseo y Derivaciones.
Compiladores Introducción al Análisis Sintáctico Gramáticas de Contexto Libre, Arboles de Parseo y Derivaciones.
Transcripción de la presentación:

Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo

Anatomía de un compilador Analizador Sintáctico (Parser) Generador de Código Optimizador de Código Analizador Semántico Analizador Léxico (Scanner) Parse Tree Programa (character stream) Token stream Intermediate Representation Optmized Intermediate Representation Assembly code

Ayer vimos Expresiones Regulares La expresiones regulares son útiles para describir strings, pero necesitamos reconocerlos. Esta es la diferencia entre conocimiento declarativo (qué es) y conocimiento imperativo (cómo hacerlo). Así que usamos expresiones regulares para describir los strings, pero usamos automata finitos para reconocerlos.

¿Qué es un automaton? Un automaton finito tiene un conjunto de estados; aristas que llevan de un estado a otro, cada arista está etiquetada con un símbolo. Un estado es el estado inicial, y algunos de los estados son los estados finales. 1 2 i f 3 IF if 1 2 a-z 0-9 ID [a-z][a-z0-9]*

Más ejemplos  3 4  5 REAL ([0-9]+"."[0-9]*) | ([0-9]*"."[0-9]+) Más ejemplos \n a-z 4 espacio, etc Espacios y Comentarios ("--"[a-z]*"\n") | (" " | "\n" | "\t")+

¿Cómo transformamos una expresión regular en un automaton? a  a 

M N Para expresiones regulares M y N MN

¿Cómo transformamos una expresión regular en un automaton? M | N M N    

¿Cómo transformamos una expresión regular en un automaton? M  NM  N N M

M* M    

¿Cómo transformamos una expresión regular en un automaton? M+ M   

¿Cómo transformamos una expresión regular en un automaton? M? M   

(-|  (0|1|2|3|4|5|6|7|8|9)+  (.  (0|1|2|3|4|5|6|7|8|9)*)?

-  

-  

-   

-   

-    

-      

-     .

-   .    

-   .    

-   .    

String Matching -   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

-   .    

Automata Finito No Determinísticos Un NDFA es un automaton en el que existe al menos un estado que posee aristas múltiples etiquetadas con el mismo símbolo o con . Definición ¡Acabamos de ver un NDFA!

Que tenemos hasta ahora Expresiones regulares proporcionan un lenguaje formal para definir los tokens. Podemos convertir fácilmente las expresiones regulares a NDFA's. Pero los NDFA's no son nada sencillos de implementar. ¡Tienen que adivinar!

Ejercicio Construyan un automaton finito no deterministico que reconozca el lenguaje que contiene los números del 0 al 256.

Mañana Cómo convertir un NDFA a un DFA