Lenguajes Formales - Unitat de Coordinació rramirez/Logica/L07.pdf3 Conceptos centrales xy denota...

download Lenguajes Formales - Unitat de Coordinació rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la

of 54

  • date post

    08-Jun-2018
  • Category

    Documents

  • view

    212
  • download

    0

Embed Size (px)

Transcript of Lenguajes Formales - Unitat de Coordinació rramirez/Logica/L07.pdf3 Conceptos centrales xy denota...

  • Lenguajes Formales

    rafael ramirezrafael@iua.upf.es

    Ocata 320

  • 2

    Conceptos centralesUn alfabeto es un conjunto (finito y no vacio) de smbolos.

    ={0,1}={a,b,,z}

    Una cadena (a veces llamada palabra) es una sequencia (finita) de smbolos de algun alfabeto.

    01101 es una cadena del alfabeto ={0,1}

    La cadena vacia es la cadena con cero smbolos

    La longitud de una cadena es el nmero de smbolos que contiene| 01101 | = 5| | = 0

    La potencia k de un alfabeto es el conjunto de cadenas con longitud ksi ={0,1}, 1 ={0,1}, 2 ={00,01,10,11}

    El conjunto de todas las cadenas sobre un alfabeto se denota *

  • 3

    Conceptos centralesxy denota la concatenacion de las cadenas x e y

    si x=barce, y=lona entonces xy=barcelona

    Un lenguaje es un conjunto de cadenas escogidasde algun *

    el conjunto de cadenas con mismo numero de 0s que de 1s= {,01,10,0011,0101,1001,}= {w | w consiste de el mismo numero de 0s que de 1s}

  • 4

    Gramticas formalesUna gramtica formal consiste en:

    Un alfabeto Un conjunto de smbolos terminales T Un conjunto de reglas de produccionUn smbolo inicial

    El lenguaje generado por una gramtica G (que se denota porL(G) ) es el conjunto de cadenas sobre que puede ser producido por las reglas de produccion empezado con el simbolo inicial.A T se le llama el conjunto de simbolos no terminales

  • 5

    Ejemplo 1

    Alfabeto: = {0,1,S}

    Conjunto de simbolos terminales: T = {0,1}(conjunto de simbolos no terminales: T = {S} )

    Reglas de produccion: S S 0S1

    Simbolo inicial: S

    Que lenguaje L(G) genera esta gramatica G?

  • 6

    Ejemplo 2

    Alfabeto: = conjunto de palabras en espaol y algunos simbolos no terminales = {el, la, nio, nia, corre, come, tarta, Oracion, Sujeto, Predicado, Verbo, Articulo, Sustantivo}

    Conjunto de simbolos terminales:T = {el, la, nio, nia, corre, come, tarta}

    Reglas de produccion: Oracion Sujeto PredicadoSujeto Articulo SustantivoPredicado Verbo Articulo SustantivoVerbo corre | comeArticulo el | laSustantivo nio | nia | tarta

    Simbolo inicial: Oracion

  • 7

    Ejemplo 2

    Operador de remplazo : remplaza cualquier no terminal en el lado izquierdo de cualquier produccion por el lado derecho de la produccion

    Oracion Sujeto Predicado Regla 1 Articulo Sustantivo Predicado Regla 2 el Sustantivo Predicado Regla 5... el nio come la tarta

    A partir de Oracion tambien podemos derivar el pastel come el nioLa sintaxis no implica semantica correcta

  • 8

    Derivaciones

    Una derivacion es una secuencia de formas sentenciales empezando con el smbolo inicial.

    Gramatica: B 0B | 1B | 0 | 1Derivacion: B 0B 01B 010Cada paso de derivation es la aplicacion de una reglade produccion.

  • 9

    Arboles de parseUn arbol de parse es una estructurasintactica herrquicaLos nodos internos denotan noterminalesLas hojas (nodos externos) denotanterminales.

    Gramatica: B 0B | 1B | 0 | 1Derivacion: B 0B 01B 010A partir de la derivacion podemosobtener el arbol de parse.

  • 10

    Derivaciones arbol de parseLas derivaciones no necesariamenteson unicas

    S SS | (S) | ()S SS (S)S (())S (())()S SS S() (S)() (())()

    En este caso tenemos diferentesderivaciones pero obtenemos el mismo arbol de parse

  • 11

    Derivaciones arbol de parsePero a partir de algunas gramaticas podemos obtener 2 arboles de parsediferentes para la misma cadena: ()()().

    Cada arbol de parse corresponde a una unica derivacion:S SS SSS ()SS ()()S ()()()

    Una gramatica es ambigua si alguna cadena tiene 2 arboles de parse distintos.Para entender la semantica de un lenguaje nos gustaria tener gramaticasno ambiguas

  • 12

    PreguntaEs esta gramtica ambigua? (intenta construir dos arboles de parse diferentes para una misma cadena)

    E E + EE E * EE NN 1 | 2 | 3 | 4

  • 13

    Respuesta: considera la cadena 2 + 3 * 4E E + EE E * EE NN 1 | 2 | 3 | 4

    EE

    E

    +

    N *NN

    2 3 4

    EE

    I+ I

    I

    23 4

    E+ *

  • 14

    Para desambiguarla(Caso 1) + con precedencia sobre *

    E E2 | E2 * EE2 N | N + E2

    1+2*3

    *

    +

    1

    2

    3(1+2)*3

  • 15

    Herarqua de Chomsky

    Gramaticas Regulares: (tipo 3)subclase de las que hemos estado viendo (tipo 2)Las reglas estan restringidas a: A t N | t donde: N = no terminal, t = terminalEjemplo: B 0 B | 1 B | 0 | 1

    Gramaticas libres de contexto: (tipo 2)Las que hemos estado viendo

    Las reglas estan restringidas a: A donde: = cadena de 0 o mas terminales y no terminalesEjemplo: S SS | (S) | ()

  • 16

    Herarqua de Chomsky (cont)

    Gramaticas sensibles al contexto: (tipo 1)

    Reglas: donde | | | | e.d. long. de long. de ,

    Gramaticas irrestringidas: (tipo 0)

    Reglas: . Sin restricciones en y .

  • 17

    GrammarV = {}

    = {}

    R = {}

    S = {}

    Cadena19a0c6duw

    Tree

    DERIVACION

    Tree

    PARSING

  • 18

    Top Down parsingGramtica

    N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?

    Top-Down Parse => => (Try first choice)=> (Try first choice)=> 1 (Backtrack : 2.34 not parsed)

  • 19

    Top Down parsingGramtica

    N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?

    Top-Down Parse => => (Try first choice)=> (Try second choice)=> 1=> 1 (Try first choice)=> 12 (Backtrack: .34 not parsed)

  • 20

    Top Down parsingGramtica

    N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?

    Top-Down Parse => => (Try second choice)=> .=> => 12.34 (success!)

  • 21

    Bottom-up parsingGramtica

    N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?

    Bottom-Up Parse => 12.34=> 2.34=> 2.34=> 2.34 (Backtrack)

  • 22

    Bottom-up parsingGramtica

    N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?

    Bottom-Up Parse => 12.34=> 2.34=> .34=> .34=> .34=> .34 (Backtrack)

  • 23

    Bottom-up parsingGramtica

    N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?

    Bottom-Up Parse => 12.34=> => .34=> => .=> => (Success!)

  • 24

    Automatas

    Automata Finito

    Una manera importante de describir los simples pero muy utiles lenguajes regulares

    Un grafo con un numero finito nodos, llamados estados Los arcos estan etiquetados con uno o mas smbolos de algun alfabeto Un estado es designado el estado inicial Algunos estados son finales

    El lenguaje del AF es el conjunto de cadenas que contienen los simbolosque en los arcos en un camino desde el estado inicial a algun estado final.

  • 25

    Automatas: ejemplo

    inicio h o l aholah ho hol

  • 26

    Automata Finito (formal)

    Un automata finito M consiste en:

    1. un conjunto finito QM de simbolos (los elementos de QM se llamanlos estados de M);

    2. un elemento sM de QM (sM se llama estado inicial de M);

    3. un subconjunt AM de QM (los elementos de AM se llaman estados finales o accepting states de M);

    4. a subconjunto finito TM de { (q, x, r) | q, r en QM y x es una cadena} (los elementos de TM se llaman transiciones de M).

  • 27

    Automata Finito

    Ejemplo

    1. QM = {A,B,C};

    2. sM = A;

    3. AM = {A,C};

    4. TM = {(A, 1,A), (B, 11,B), (C, 111, C), (A, 0,B), (A, 2,B),(A, 0, C), (A, 2, C), (B, 0, C), (B, 2, C)}.

  • 28

    Definicion: autmata

    Un autmata finito consiste en:

    Un conjunto finito de estados

    Un estado inicial

    Un conjunto de estados finales

    Una funcion de transicion

  • 29

    Automata FinitoEjemplo

    1. QM = {A,B,C};2. sM = A;3. AM = {A,C};4. TM = {(A, 1,A), (B, 11,B), (C, 111, C), (A, 0,B), (A, 2,B),

    (A, 0, C), (A, 2, C), (B, 0, C), (B, 2, C)}.

    Dibuja la representacion grafica de M

  • 30

    Automata FinitoEjemplo

    1. QM = {A,B,C};2. sM = A;3. AM = {A,C};4. TM = {(A, 1,A), (B, 11,B), (C, 111, C), (A, 0,B), (A, 2,B),

    (A, 0, C), (A, 2, C), (B, 0, C), (B, 2, C)}.

  • 31

    Automata Finito

    Los automatas finitos pueden ser determinaistas o nodeterministicas.

    toman cadenas como entradas.

    Cuando un automata ejecuta con una entrada dada, empieza en su estado inicial.

  • 32

    Automata Finito

    Si, despues de un numero de pasos, el automata1. esta en un estado p, 2. la entrada restante empieza con x, y3. hay una transicion (p, x, q) en el automata,