Lenguajes Regulares Curso de Compiladores Manuel E. Bermúdez, Ph.D.

Slides:



Advertisements
Presentaciones similares
DR. RAMON ZATARAIN CABADA
Advertisements

Autómata finito Determinista
Introducción ¿Qué es un Algoritmo?
GRAMATICA LIBRE DE CONTEXTO
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Filminas Undécima Semana CI-1322 Autómatas y Compiladores Elaborado por: Sergio Pastrana Espinoza A33888.
Filminas Octava Semana CI-1322 Autómatas y Compiladores Elaborado por: Sergio Pastrana Espinoza A33888.
Compiladores e intérpretes
Compiladores e intérpretes Análisis Sintáctico III
Gramáticas Libres de Contexto
Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Gramáticas.
Autómatas Finitos.
Diseño de AFN’s.
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.
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
Tema 2.- Gramáticas independientes de contexto.
¿Cómo hacer para que una máquina comprenda el LN?
Organización de Lenguajes y Compiladores 1
ANALIZADOR SINTACTICO
Expresiones regulares
Tema 2 Autómatas finitos 1. Autómata finito determinista
Tema 1.- Lenguajes. Gramáticas
Traducción dirigida por la Sintaxis
ANALISIS SINTACTICO DESCENDENTE
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
Expresiones Regulares
Teoría de lenguajes y compiladores
Tema 1.- Lenguajes. Gramáticas
Tema 2 Lenguajes Formales.
Introducción a la Teoría de Lenguajes Preparado por Manuel E. Bermúdez, Ph.D. Profesor Asociado University of Florida Curso de Compiladores.
Análisis sintáctico LR: SLR (LR simple)
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
2º curso Ingeniería Técnica en Informática de Sistemas UNED
ANALISIS SINTACTICO Parte I
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
Teoría de lenguajes y compiladores
Introducción al Análisis Sintáctico
Tema 2 Autómatas finitos 1. Autómata finito determinista
Lenguajes regulares Teoría del Autómata.
Teoría de lenguajes y compiladores Analizadores lexicográficos
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
MÁQUINAS DE TURING Teoría del Autómata.
COMPUTABILIDAD Y COMPLEJIDAD 1. Conceptos básicos (revisión). 2. Gramáticas independientes de contexto. 3. Propiedades de los lenguajes independientes.
Tomado de Sudkamp: Languages and Machines Cap. 6.
Lenguajes Formales y Autómatas
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
Autómatas de Pila (Pushdown Automatón)
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
1 AFDAFN AF Gramáticas lineales derecha Expresiones regulares Tema 2 Método de los AF Método de las derivadas Sistemas de Ecuaciones Tema 1.
UNIVERSIDAD LATINA (UNILA)
Teoría de lenguajes y compiladores
Autómatas y Compiladores Novena Semana. Ricardo Vargas Del Valle A35469.
Teoría de lenguajes y compiladores
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Autómatas y Compiladores. Tercera Semana. Ricardo Vargas Del Valle A35469.
Unidad 3 Analizador Sintáctico
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Autómatas y Compiladores Semana 13. Ricardo Vargas Del Valle A35469.
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
Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales.
Computación Valeria Herskovic –
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
AUTOMATAS FINITOS DETERMINISTICOS
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
Tema 2 Autómatas finitos 1. Autómata finito determinista
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
Transcripción de la presentación:

Lenguajes Regulares Curso de Compiladores Manuel E. Bermúdez, Ph.D. 07/04/2017 Lenguajes Regulares Curso de Compiladores Preparado por Manuel E. Bermúdez, Ph.D. Profesor Asociado University of Florida

Lenguajes Regulares Estudiaremos: Gramáticas Regulares 07/04/2017 Lenguajes Regulares Estudiaremos: Gramáticas Regulares Relación con autómatas de estado finito Expresiones Regulares Equivalencia entre representaciones Eliminación del no-determinismo Minimización de estados

07/04/2017 Lenguajes Regulares Definición: Una gramática G = (Φ, Σ, P, S) es regular sii una condición (pero no ambas): 1) Cada producción es de la forma A →  ó A → B (lineal derecha) 2) Cada producción es de la forma or A → B (lineal izquierda) donde   Σ*, y A, B  Φ.

Lenguajes Regulares Ejemplos: G1: S → a R → abaU → bU → U ¿Regular? 07/04/2017 Lenguajes Regulares Ejemplos: G1: S → a R → abaU → bU → U ¿Regular? → bR U → b ¿ Por qué ? → S G2: S → a R → Uaba → Ub U → b ¿ Regular? → Rb → aS ¿ Por qué ?

Lenguajes Regulares Diseñemos una máquina que acepte L(G1). 07/04/2017 Lenguajes Regulares Diseñemos una máquina que acepte L(G1). Observemos que S => a bU => bb … bR bS … babaU Toda forma sentencial (excepto las sentencias) tienen exactamente UN símbolo no-terminal. El no-terminal ocurre en la posición derecha. Producciones aplicables (derivaciones) dependen SOLO de ese no-terminal. G1: S → a R → abaU → bU → U → bR U → b → S => => => => =>

07/04/2017 Lenguajes Regulares Estrategia: Representar todas la secuencias de derivación con la relación ”⊢” , sobre pares ordenados de la forma (q, ), donde q – el estado actual  – la hilera que falta de aceptar Así, S → bU implica (S, bβ) ⊢ (U, β) El estado “forma sentencial termina en S” “se transforma en” El estado “forma sentencial termina en U”

Lenguajes Regulares Así, (S, babab) ⊢ (R, abab) (porque S → bR) ⊢ (U, b) (porque R → abaU) ⊢ (ε, ε) (porque U → b) Criterio de aceptación de : (S, ) ⊢* (ε, ε)

Transformación de gramática regular a diagrama de transiciones: 07/04/2017 Transformación de gramática regular a diagrama de transiciones: Definimos un grafo, con un nodo por cada no-terminal, que describe las posibles acciones sobre cada forma sentencial. Así, S → bU implica , R → U implica , y S → a implica . b S U R F  a

Transformación de gramática regular a diagrama de transiciones: 07/04/2017 Transformación de gramática regular a diagrama de transiciones: Ejemplo: S → a R → abaU U → b → bU → U →aS → bR S U R F aba ε b a

Transformación de gramática regular a diagrama de transiciones: 07/04/2017 Transformación de gramática regular a diagrama de transiciones: Algoritmo 1: Gramática Lineal Derecha → Diagrama de Transición: Nodos: Φ  {F}, F  Φ si A →  B si A →  α A B α A F S

Transformación de gramática regular a diagrama de transiciones: 07/04/2017 Transformación de gramática regular a diagrama de transiciones: S → a R → abaU U → b → bU → U →aS → bR Ejemplo: “babaa”  L(G)? Nodo Entrada Derivación S babaa S => U abaa bU => S baa baS => U aa babU => S a babaS => F babaa Sí, pero en forma no-determinística. S U R F aba ε b a

Autómatas de Estado Finito 07/04/2017 Autómatas de Estado Finito Definición: Un autómata de estado finito (no-determinístico) es una tupla M = (Q, Σ, δ, s, F), donde Q es un conjunto finito de estados, Σ es un conjunto finito de símbolos de transición, δ: Q x Σ U {ε} → 2Q es una función parcial llamada la función de transición, s  Q se llama el estado inicial, y F  Q es el conjunto de estados finales. Un FSA es el mecanismo formal de aceptación de un lenguaje regular. Requiere que cada transición tenga una etiqueta (hilera) de longitud < 1.

Autómatas de Estado Finito 07/04/2017 Autómatas de Estado Finito S U R F aba ε b a El diagrama de estados (grafo) corresponde al FSA ({S, R, U, F, X, Y}, {a, b}, δ, S, {F}), donde δ (S, a) = {F} δ (S, b) = {U, R} δ (R, ε) = {U} δ (R, a) = {X} δ (U, a) = {S} δ (U, b) = {F} δ (X, b) = {Y} δ (Y, a) = {U} a R X Y U b

Autómatas de Estado Finito 07/04/2017 Autómatas de Estado Finito DOS “SÍNTOMAS” DEL NO-DETERMINISMO: Nota: No es problema a ε 1. X 2. a X a a F

Autómatas de Estado Finito 07/04/2017 Autómatas de Estado Finito Ventajas de los FSA’s: Pregunta: ¿ Qué lenguaje genera la siguiente gramática? S → aA A → aB B → aC → ε → E → D C → bD D → bE E → bS Difícil de visualizar. Intentemos el FSA.

Autómatas de Estado Finito 07/04/2017 Autómatas de Estado Finito ε a a F S A B ε ε a b b b E D C Respuesta: L*, donde L = {ab, aabb, aaabbb} Resumen: FSA’s son tan poderosas (en capacidad de reconocimiento) que las gramáticas lineales derechas. ¿ Son más poderosas ? No. Podemos transformar FSA → RGR.

Transformación de diagrama de transiciones a gramática regular 07/04/2017 Transformación de diagrama de transiciones a gramática regular Algoritmo 2: Diagrama de Transición → Gramática Lineal Derecha: Φ = Q A → aB si B  δ (A, a) A → a si f  δ (A, a), y f  F Símbolo de inicio = Estado inicial

Transformación de diagrama de transiciones a gramática regular 07/04/2017 Transformación de diagrama de transiciones a gramática regular b Ejemplo: FSA: RGR: A → aB B → bB D → cE → a → bD → c → b E → F F → dG G → H → ε H → A Conclusión: Gramáticas lineales derechas, y automátas de estado finito, son equivalentes. a b c A B D E ε ε ε d H G F

Gramática Lineal Izquierda 07/04/2017 Gramática Lineal Izquierda Relación entre gramática lineal izquierda y FSA: Ejemplo: F → Sa U → Sb R → Sb → Ub → R S → Ua → Raba → Derivaciones: Sbb ... F => Ub => Rb ... Rabab ... Sa => Uaa ... a => => => =>

Gramática Lineal Izquierda 07/04/2017 Gramática Lineal Izquierda Similaridades con gramáticas lineales derechas: Formas sentenciales tienen a lo sumo un no-terminal. Sentencias no tienen no-terminales. Producciones aplicables dependen solo del no-terminal. Diferencias con gramáticas lineales derechas: No-terminales aparecen a la izquierda. La hilera se genera de derecha a izquierda, vs. de izquierda a derecha para gramáticas lineales derechas.

Gramática Lineal Izquierda 07/04/2017 Gramática Lineal Izquierda Algoritmo 3: Gramática Lineal Izquierda → Diagrama de Transición si A → B. si A → , S’ es un nuevo estado de inicio. F = {S}, S es el símbolo de inicio. α B A α S’ A

Gramática Lineal Izquierda 07/04/2017 Gramática Lineal Izquierda Ejemplo: F → Sa U → Sb S → Ua → Ub → R → ε R → Sb → Raba S U R F aba ε b a S’

Gramática Lineal Izquierda 07/04/2017 Gramática Lineal Izquierda Nodo Entrada Derivación (¡ inversa!) S’ babaaa babaaa S babaaa Sbabaaa <= R abaaa Rabaaa <= U aa Uaa <= S a Sa <= F F S U R F aba ε b a S’ F → Sa U → Sb S → Ua → Ub → R → ε R → Sb → Raba

Gramática Lineal Izquierda 07/04/2017 Gramática Lineal Izquierda Algoritmo 4: Diagrama de Transición → Gramática Lineal Izquierda: A → B si A →  si S’ → F si α B A α S A F Nuevo símbolo de inicio

Resumen: Lenguajes Regulares y Autómatas 07/04/2017 Resumen: Lenguajes Regulares y Autómatas Resumiendo: RGR RGL RE FSA Nota: Cuidado con intentos de conversión directa entre gramáticas regulares izquierdas y derechas. Listo Algoritmos 1,2 Algoritmos 3,4 Pronto