Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porDoncia Del Pozo Modificado hace 9 años
1
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
2
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
3
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 Φ.
4
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é ?
5
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 => => => => =>
6
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”
7
Lenguajes Regulares Así, (S, babab) ⊢ (R, abab) (porque S → bR) ⊢ (U, b) (porque R → abaU) ⊢ (ε, ε) (porque U → b) Criterio de aceptación de : (S, ) ⊢* (ε, ε)
8
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
9
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
10
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
11
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
12
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.
13
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
14
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
15
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.
16
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.
17
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
18
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
19
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 => => => =>
20
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.
21
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
22
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’
23
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
24
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
25
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.