chomsky

Upload: edward-gomez

Post on 15-Oct-2015

19 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/25/2018 Chomsky

    1/44

    Departamento de Tecnologas de la Informacin

    Ciencias de la Computacin e Inteligencia Artificial

    Tema 3: Fundamentos de la

    Teora de GramticasFormales

  • 5/25/2018 Chomsky

    2/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    2

  • 5/25/2018 Chomsky

    3/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    3

  • 5/25/2018 Chomsky

    4/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.1 Concepto bsico deGramtica. Ejemplos

    Una gramtica define la estructura de las frases y

    de las palabras de un lenguaje.

    Las gramticas son un mtodo para la generacin

    de palabras de un lenguaje a partir de un alfabeto. para generar estas palabras se utilizan las derivaciones.

    se denominan formales porque se centran en los estudios

    de los lenguajes formales que son aquellos que estn

    definidos a partir de reglas preestablecidas. Para los

    lenguajes naturales existen otro tipo de gramticas.

    4

  • 5/25/2018 Chomsky

    5/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.1 Concepto bsico deGramtica. Ejemplos

    La gramtica de la lengua castellana se expresa mediante reglas sencillas quedefinen las partes de la oracin, y que permiten comprobar fcilmente si unafrase determinada es o no correcta. Analizar la frase La nia peda comida a

    Mara en el parque.

    ::= ::= ::=

    ::= ::= ::= ::= ::= ::= ::= ::= < circunstancial> ::= ::= ::= ::= ::= ::= a ::=

    5

  • 5/25/2018 Chomsky

    6/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.1 Concepto bsico deGramtica. Ejemplos

    Obsrvese la existencia de recursividad en las reglas de produccin. Algunas

    la introducen directamente, como en el caso ::=, mientras que en otras de forma indirecta

    ( ).

    Para completar las reglas sintcticas anteriores se necesita informacin

    morfolgica sobre las palabras. Esta informacin tambin puede escribirse en

    forma de reglas de produccin:

    ::= nia

    ::= Mara

    ::= comida

    ::= parque

    ::= la

    ::= peda

    ::= en

    6

  • 5/25/2018 Chomsky

    7/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.1 Concepto bsico deGramtica. Ejemplos

    Teniendo en cuenta todas estas reglas, y aplicando el concepto dederivacin, se puede obtener la frase considerada partiendo de unapalabra de una sola letra :

    la

    la nia

    la nia

    la nia peda la nia peda

    la nia peda comida

    7

  • 5/25/2018 Chomsky

    8/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.1 Concepto bsico deGramtica. Ejemplos

    la nia peda comida a la nia peda comida a la nia peda comida a la nia peda comida a Mara la nia peda comida a Mara la nia peda comida a Mara en la nia peda comida a Mara en

    la nia peda comida a Mara en la nia peda comida a Mara en el la nia peda comida a Mara en el parque

    Por tanto, al haber una derivacin que produce dicha frase

    partiendo de , se sigue que se trata de una frase correctaque pertenece al lenguaje representado por la gramtica.

    8

  • 5/25/2018 Chomsky

    9/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.1 Concepto bsico deGramtica. Ejemplos

    Ejemplo: consideremos la instruccin de cualquier lenguaje x = y+2*zcon:

    conjunto de producciones : ::= ::= =

    ::=

    ::= + ::= ::= *

    ::= ::=

    Reglas morfolgicas : ::= x

    ::= y

    ::= z

    ::= 2

    9

  • 5/25/2018 Chomsky

    10/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.1 Concepto bsico deGramtica. Ejemplos

    Obtenemos la expresin x = y+2*z a partir de as:

    = x = x = + x = + x = + x = y+ x = y+ x = y+ *

    x = y+ * x = y+2* x = y+2* x = y+2* x = y+2*z

    10

  • 5/25/2018 Chomsky

    11/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    11

  • 5/25/2018 Chomsky

    12/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.2 Concepto de gramticaformal

    Definiciones

    Produccin o regla (x::=y):es un par ordenado (x, y) con x, y *, es decir, si se encuentra x como partede cualquier palabra v se puede sustituir x pory en v, lo que permitetransformar palabras en otras

    Derivacin directa vw:aplicacin de una produccin (x ::= y) a una palabra v para convertirla enotra w donde v=zxu y w=zyu (v, w, z, u *)

    Se cumple que para cada produccin x::=y existe una derivacin directa (haciendo

    z=u=): x y Derivacin v * w:

    aplicacin de una secuencia de producciones a una palabra. Longitud de la derivacin:

    nmero de derivaciones que hay que aplicar para obtener la palabra.

    12

  • 5/25/2018 Chomsky

    13/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.2 Concepto de gramticaformal

    Definiciones

    Derivacin ms a la izquierda:Se utiliza en cada derivacin directa la produccin aplicada a los smbolosms a la izquierda de la palabra.

    Derivacin ms a la derecha:

    Se utiliza en cada derivacin directa la produccin aplicada a los smbolos

    ms a la derecha de la palabra.

    13

  • 5/25/2018 Chomsky

    14/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.2 Concepto de gramticaformal

    Definiciones

    Se denominagramtica formal a la cudrupla

    G = (T,N, S, P) T, alfabeto de smbolos terminales

    N, alfabeto de smbolos no terminales S N, es el axioma o smbolo inicial

    P es un conjunto finito de reglas de produccin de la forma u ::=

    v, donde u + y v *.

    Se verifica adems que: T N = el alfabeto es = T N

    14

    C d i

  • 5/25/2018 Chomsky

    15/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.2 Concepto de gramticaformal

    Forma normal de Backus

    Ejemplo : consideremos la gramticaT = {0, 1, 2}N = {N, C}S = N

    P = { N::=NC, N::=C, C::=0, C::=1, C::=2} Es posible establecer una notacin simplificada para las reglas deproduccin. Si existen dos reglas de la forma

    u::=vu::=w

    se pueden representar de la forma:

    u::=v | wEsta forma de representar las reglas de produccin recibe el nombre deforma normal de Backus (o BNF)

    15

    3 2 C d i

  • 5/25/2018 Chomsky

    16/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.2 Concepto de gramticaformal

    Formas sentenciales y sentencias

    Sea G = (T,N, S, P). Una palabra x * se denomina formasentencial de G si se verifica que

    S * x Considerando la gramtica anterior, las siguientes son

    formas sentenciales : NCC, NC2, 120S = N NC NCCS = N NC NCC NC2S = N NC NCC CCC 1CC 12C 120

    Si una forma sentencial x cumple que x T* se dice que x esuna sentencia o instruccin de G. Es decir, las sentenciasestarn compuestas nicamente por smbolos terminales. En el ejemplo anterior es sentencia: 120

    16

    3 2 C t d ti

  • 5/25/2018 Chomsky

    17/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.2 Concepto de gramticaformal

    Lenguaje asociado a una gramtica

    Sea una gramtica G = (T,N, S, P). Se llama lenguajeasociado a la G, o lenguaje generado por G, o lenguajedescrito por G, al conjunto :

    L(G) = { x / S * x and x T* }Conjunto de todas las sentencias de la gramtica

    Ya que la teora de gramticas formales (Chomsky), junto conla notacin BNF, proporciona una forma de describir

    lenguajes, esta simbologa se considera como unmetalenguaje (lenguaje para describir lenguajes).

    17

  • 5/25/2018 Chomsky

    18/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    18

    d d l 3 3 Ti d G ti

  • 5/25/2018 Chomsky

    19/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    Chomsky clasific las gramticas en cuatro grandes grupos : G0, G1,G2 y G3. Cada uno de estos grupos incluye las gramticas delsiguiente, de acuerdo con el siguiente esquema:

    G3

    G2

    G1

    G0

    19

    T F d d l 3 3 Ti d G ti

  • 5/25/2018 Chomsky

    20/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    1. Gramticas tipo 0

    Las reglas de produccin tienen la formau ::= v

    donde u +, v *, u = xAy con x *, y *, A N sin otra restriccin En las reglas de produccin:

    La parte izquierda no puede ser la palabra vaca.

    En la parte izquierda (u) ha de aparecer algn smbolo no terminal. Los lenguajes representados por estas gramticas reciben el nombre de

    lenguajes sin restricciones. Puede demostrarse que todo lenguaje

    representado por este tipo de gramticas pueden ser descritos tambin por

    un grupo de gramticas un poco ms restringido (llamado de gramticas de

    estructura de frases), cuyas producciones tienen la forma xAy ::= xvy, dondex ,y ,v *, siendo A un smbolo no terminal.

    20

    T 3 F d t d l 3 3 Ti o de G a ti a

  • 5/25/2018 Chomsky

    21/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    Ya que v puede ser la palabra vaca, se sigue que en estas reglas podemosencontrar situaciones en que la parte derecha sea ms corta que la izquierda.Las reglas en que ocurre esto se denominan compresoras. Una gramtica quecontenga al menos una regla compresora se denomina gramticacompresora.

    En las gramticas compresoras, las derivaciones pueden ser decrecientes, yaque la longitud de las palabras puede disminuir en cada uno de los pasos de

    derivacin. Ejemplo: sea G = ({a, b}, {A, B, C}, A, P), donde P:

    A ::= aABC | abCCB ::= BCbB ::= bbbC ::= b

    21

    T 3 F d t d l 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    22/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    Esta gramtica es de tipo 0, no es de estructura de frases por la reglaCB ::= BC

    Formas de considerarla: Considerando x = , A = C,y = B. Estara formada la parte izquierda

    de la produccin, pero la derecha ser vB y sea cual sea v, no podrser BC

    Considerando x = C, A = B,y = . As tendramos formada la parteizquierda de la regla, pero en la derecha tendramos Cv, y sea v lo

    que sea no podremos obtener CB. Ya no es posible hacer ninguna otra descomposicin, por lo que esta

    regla no pertenece al esquema de reglas visto para las gramticas deestructura de frases.

    Para la produccin : A ::= aABC:

    A = A, x=

    ,y =

    . Si hacemos v = aABC, la regla se ajusta al formatoconsiderado.

    22

    T 3 F d t d l 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    23/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    Sin embargo la regla CB ::= BC puede descomponerse en las cuatro reglassiguientes, que permiten obtener las mismas derivaciones con ms pasos,pero ajustndose a las condiciones exigidas para que la gramtica sea deestructura de frases.

    CB ::= XB

    XB ::= XY

    XY ::= BY

    BY ::= BC

    La gramtica resultante, tendr 3 reglas de produccin ms y dos smbolosadicionales (X, Y) en el alfabeto de smbolos no terminales.

    Veamos la derivacin de la sentencia aaabbb, mediante la gramtica original :

    A a(A)BC aa(A)BCBC aaab(CB)CBC aaa(bB)CCBC aaab(bC)CBC aaab(bC)BC aaab(bB)C aaabb(bC) aaabbb

    Se observa tambin que la gramtica es compresora, debido a la presencia dela regla bC ::= b.

    Puede comprobarse que el lenguaje generado por esta gramtica es{anbn|n=1,2,..}

    23

    T 3 F d t d l 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    24/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    2. Gramticas tipo 1

    Las reglas de produccin de esta gramtica tienen la formaxAy ::= xvy

    donde x, y *, v + y A ha de ser un smbolo no terminal.(A puede transformarse en v slo si aparece en el contexto definido por x e y)

    Ya que v no puede ser la palabra vaca, se deduce de aqu que este tipo de gramticas no

    pueden tener reglas compresoras. Se admite una excepcin en la regla S ::= (siendo S elaxioma de la gramtica). Como consecuencia se tiene que la palabra vaca pertenece al

    lenguaje generado por la gramtica slo si contiene esta regla.

    Los lenguajes generados por este tipo de gram{ticas se denominan dependientes delcontexto.

    24

    Te a 3 Fu da e to de la 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    25/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    2. Gramticas tipo 1

    Evidentemente todas las gramticas de tipo 1 son tambin de tipo 0, y as,todos los lenguajes dependientes de contexto sern tambin lenguajes sinrestricciones.

    Ejemplo : G = ({S, B, C}, {a, b, b}, S,P), donde P es:S ::= aSBc | aBC

    bB ::= bbbC ::= bcCB ::= BCcC ::= ccaB ::= ab

    25

    Tema 3: Fundamentos de la 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    26/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    3. Gramticas tipo 2

    Las reglas de estas gramticas se ajustan al siguiente esquema:

    A ::= v

    donde v *, y A N En concreto v puede ser .

    Para toda gramtica de tipo 2 existe una gramtica equivalente desprovista de reglas de

    la forma A ::= , que generar el mismo lenguaje que la de partida, excepto la palabravaca. Si se le aade a la segunda gramtica la regla S ::= , las gramticas generarn elmismo lenguaje.

    Por lo tanto, se pueden definir las gramticas de tipo 2 de una forma ms restringida, enel que las reglas de produccin tendrn la siguiente forma

    A ::= v donde v +, y A N . Adems podrn contener reglaS ::=

    Los lenguajes generados por este tipo de gramticas se denominan independientes decontexto, ya que la conversin de A en v puede realizarse independientemente delcontexto en que aparezca A.

    26

    Tema 3: Fundamentos de la 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    27/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    3. Gramticas tipo 2

    La mayor parte de los lenguajes de programacin de ordenadores puedendescribirse mediante gramticas de este tipo.

    Ejemplo : sea la gramtica G = ({a, b}, {S}, S, { S ::= aSb | ab}).Es una gramtica de tipo 2. La derivacin de la palabra aaabbb ser:

    S aSb aaSbb aaabbb

    Puede verse que el lenguaje definido por esta gramtica es {anbn | n=1, 2, ...}

    Un mismo lenguaje puede generarse por muchas gramticas diferentes. Sinembargo, una gramtica determinada describe siempre un lenguaje nico.

    27

    Tema 3: Fundamentos de la 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    28/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    4. Gramticas tipo 3

    Estas gramticas se clasifican en los dos grupos siguientes:

    Gramticas lineales por la izquierda, cuyas reglas de produccin pueden tener una delas formas siguientes:

    A ::= a

    A ::= Va

    S ::= donde a T, A, V N, y S es el axioma de la gramtica.

    Gramticas lineales por la derecha, cuyas reglas de produccin tendrn la forma:

    A ::= a

    A ::= aV

    S ::= donde a T, A, V N, y S es el axioma de la gramtica.

    Los lenguajes representados por este tipo de gramticas se denominan lenguajesregulares.

    28

    Tema 3: Fundamentos de la 3 3 Tipos de Gramticas

  • 5/25/2018 Chomsky

    29/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.3. Tipos de Gramticas.Jerarqua de Chomsky

    4. Gramticas tipo 3

    G1 = ({ 0, 1}, {A, B}, A, { A ::= B1 | 1, B ::= A0})

    Gramtica lineal por la izquierda que describe el lenguaje:

    L1 = { 1, 101, 10101, ... } = {1(01)n | n = 0, 1, 2, ...}

    G2 = ({ 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A})

    Gramtica lineal derecha que genera el mismo lenguaje que la gramtica

    anterior.

    29

    Tema 3: Fundamentos de la

  • 5/25/2018 Chomsky

    30/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    30

    Tema 3: Fundamentos de la

  • 5/25/2018 Chomsky

    31/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.4 rboles de derivacin

    A toda derivacin de una gramtica de tipo 1, 2 3 le corresponde un rbol de

    derivacin. Este rbol se construye as :

    La raz del rbol corresponde al axioma de la gramtica Una derivacin directa se representa por un conjunto de ramas que salen de un

    nodo determinado. Al aplicar una regla, uno de los smbolos de la parte izquierda

    de la produccin queda sustituido por la palabra de la parte derecha. Por cada uno

    de los smbolos de x se dibuja una rama, que parte del nodo correspondiente al

    smbolo sustituido. En cada rama, el nodo de partida se denominapadre. El final se denomina hijo del

    primero. Dos nodos hijos del mismo padre se denominan hermanos. Un nodo es

    ascendiente de otro si es su padre o ascendiente de su padre. Un nodo es

    descendiente de otro si es su hijo o es descendiente de su hijo.

    A lo largo del proceso de construccin del rbol, los nodos finales de cada paso, ledosde izquierda a derecha, forman la forma sentencial obtenida por la derivacin

    representada por el rbol.

    Ser rama terminal aquella dirigida hacia un smbolo terminal. Este nodo se llama hoja.

    El conjunto de hojas, ledo de izquierda a derecha, forma la sentencia generada por la

    derivacin.31

    Tema 3: Fundamentos de la b l d d

  • 5/25/2018 Chomsky

    32/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.4 rboles de derivacin

    32

    Ejemplo : sea la gramtica

    G = ({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},{N,C}, N,

    {N ::= C | NC, C ::=0|1|2|3|4|5|6|7|8|9}) Consideraremos la derivacin :

    N NC NCC CCC 2CC 23C 234

    El rbol de derivacin correspondiente es:

    C

    4

    N

    N

    2

    C

    3

    N

    C

    Subrbol

    Dado un rbol correspondiente a una derivacin, se denomina subrbol al rbol cuyaraz es un nodo cualquiera y cuyos nodos son los descendientes de ste.

    Teorema : Los nodos terminales de un subrbol, ledos de izquierda a derecha, forman una

    frase respecto de la raz del subrbol.

    Demostracin :

    Sea U la raz del subrbol, y sea u la palabra formada por los nodos terminales del subrbol. As, se

    verifica que U +u

    Sea x la palabra formada, leyendo de izquierda a derecha, los nodos terminales del rbol situados a la

    izquierda de los del subrbol. Sea y la palabra formada, leyendo de izquierda a derecha, los nodosterminales situados a la derecha de los del subrbol. De esta forma se verifica que xuy es la sentencia

    definida por el rbol completo.

    Como S *xUy y adems U +u, se sigue que u es una frase respecto de U y de la forma sentencial

    xuy.

    Si todos los nodos terminales del subrbol son hijos de la raz, entonces u es una frase

    simple.

    Tema 3: Fundamentos de la b l d d i i

  • 5/25/2018 Chomsky

    33/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.4 rboles de derivacin

    Proceso inverso

    Para cada derivacin existe un nico rbol de derivacin. Sinembargo, de una misma sentencia pueden obtenerse, a veces,

    varias derivaciones diferentes.

    Por ejemplo, el mismo rbol anterior puede aplicarse a las

    siguientes derivaciones :N NC NCC CCC 2CC 23C 234

    N NC NCC CCC C3C 23C 234

    N NC NCC CCC 2CC 2C4 234

    33

    Tema 3: Fundamentos de la di

  • 5/25/2018 Chomsky

    34/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    34

    Tema 3: Fundamentos de la 3 5 A bi d d

  • 5/25/2018 Chomsky

    35/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.5 Ambigedad

    Se dice que una sentencia es ambigua cuando para una mismasentencia podemos tener varios rboles de derivacin diferentes.

    (Como se vio en el ejemplo anterior, una misma sentencia puede obtenerse comoresultado de varias derivaciones diferentes, pero a las que les corresponde un nicorbol de derivacin.)

    Se dice que una gramtica es ambigua si tiene al menos unasentencia ambigua.

    Se dice que un lenguaje es ambiguo si existe una gramtica ambiguaque lo genera.

    Ejemplo : G = ({i, +, *, (, )}, {E}, E, E ::= E + E | E * E | ( E ) | i }) Consideremos la sentencia i+i*i. Para esta sentencia podemos tener los siguientes

    rboles de derivacin :

    35

    Tema 3: Fundamentos de la 3 5 A bi d d

  • 5/25/2018 Chomsky

    36/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.5 Ambigedad

    36

    rboles de derivacin para la sentencia i+i*i.

    E

    E

    i +

    E

    E

    *

    E

    i i

    E

    i*

    E

    E

    i +

    E

    i

    E

    Esto no quiere decir que el lenguaje sea ambiguo, ya que se puede encontrar

    una gramtica equivalente a la anterior, sin ser ambigua.

    Pero hay lenguajes para los cuales es imposible encontrar gramticas no

    ambiguas. Estos lenguajes se denominan inherentemente ambiguos.

    Tema 3: Fundamentos de la 3 5 A bi d d

  • 5/25/2018 Chomsky

    37/44

    Tema 3: Fundamentos de laTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.5 Ambigedad

    37

    Ejemplo: gramtica equivalente a la anterior sin ser ambigua:

    G = ({i, +, *, (, )}, {E, T, F}, E,

    E ::= T | E + E, T ::= F | T * F, F ::= ( E ) | i })

    Existe un slo rbol de derivacin para la sentencia i+i*i

    E

    E

    i +

    T

    T

    *

    F

    i i

    T

    F F

    Tema 3: Fundamentos de la di

  • 5/25/2018 Chomsky

    38/44

    e a u a e o e aTeora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    38

    Tema 3: Fundamentos de la 3 6 Re u i idad

  • 5/25/2018 Chomsky

    39/44

    Teora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.6 Recursividad

    39

    Una gramtica G se llama recursiva en A, A N, si

    A + xAy Si x es la palabra vaca, se dice que la gramtica es recursiva a izquierdas

    A + Ay Siy es la palabra vaca, se dice que la gramtica es recursiva a derechas

    A + xA Se dice que una produccin es recursiva si

    A::= xAy La produccin es recursiva a izquierdas si x =.

    A::= Ay Ser recursiva a derechas si y =.

    A::= xA Si un lenguaje es infinito, la gramtica que lo representa ha de ser

    recursiva.

    Tema 3: Fundamentos de la 3 6 Recursividad

  • 5/25/2018 Chomsky

    40/44

    Teora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.6 Recursividad

    40

    Eliminacin de la recursividad por la izquierda en producciones de unmismo smbolo no terminal:

    A NSi P1= (A::=A1| A2|.| An|1| 2||m) donde i no comienza por Aentonces //crear un smbolo nuevo A

    N= N A};

    P=(P-P1) {A::= 1A| 2A||mA ; A::= 1A| 2A||nA|}fsi

    f

    Tema 3: Fundamentos de la 3 6 Recursividad

  • 5/25/2018 Chomsky

    41/44

    Teora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.6 Recursividad

    41

    Eliminacin de la recursividad por la izquierda en ms de un paso

    1. Disponer los N en algn orden A1, A2,An2. Para i:=1 hasta n

    Para j:=1 hasta nSi i j entoncesreemplazar cada produccin Ai::= Aj por:

    Ai::= 1 | 2 |. k donde Aj::= 1 | 2 |. k son todas las reglas de Aj

    fsiEliminar la recursividad por la izquierda de las Ai

    fparafpara

    Tema 3: Fundamentos de la 3 6 Recursividad

  • 5/25/2018 Chomsky

    42/44

    Teora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    3.6 Recursividad

    42

    G =({i,+,*,(,)},{E,T},E, P={E ::=T+E | T*E | i ; T::=E|(E)})1. A1=E; A2=T

    2. Bucles: i=1 (A1=E); j=1 (A1=E). Se reemplazaran E::=E. No hay. i=1 (A1=E); j=2 (A2=T). Se reemplazan E::=T. El nuevo P es

    E ::=E+E | E*E |(E)+E | (E)*E | i

    T::= E | (E) Se elimina la recursin en E quedando P:

    E ::= (E)+EE | (E)*EE | i E

    E ::= +EE | *EE |

    T::= E | (E)

    i=2 (A2=T); j=1 (A1=E). Se reemplazan T::=E. El nuevo P es

    E ::= (E)+EE | (E)*EE | i E

    E ::= +EE | *EE |

    T::= (E)+EE | (E)*EE | i E | (E)

    Se eliminara la recursin en T si la hubiera.

    i=2 (A2=T); j=2 (A2=T). Se reemplazaran T::=T. No hay

    El conjunto final de producciones es P

    Tema 3: Fundamentos de la ndice

  • 5/25/2018 Chomsky

    43/44

    Teora de Gramticas Formales

    Teora de Autmatas y Lenguajes Formales

    ndice

    3.1. Concepto bsico de Gramtica. Ejemplos

    3.2. Concepto de gramtica formal

    3.3. Tipos de Gramticas. Jerarqua de Chomsky

    3.4. rboles de derivacin3.5. Ambigedad

    3.6. Recursividad

    3.7. Factorizacin a izquierdas

    43

    Tema 3: Fundamentos de la 3 7 Factorizacin a izquierdas

  • 5/25/2018 Chomsky

    44/44

    Teora de Gramticas Formales3.7 Factorizacin a izquierdas

    Se puede factorizar a izquierdas cuando en una gramtica aparecen produccionesde un mismo smbolo no terminal en cuya parte derecha, la primera parte es

    comn. Algoritmo de factorizacin a izquierdas:

    A NSi A::=1| 2 | ..|n

    entonces //crear un smbolo nuevo A y cambiar las producciones por:N= N A};A::= AA::= 1| 2||n

    fsif

    Ejemplo: E ::=E+E | E*E | i }. Se crea E y quedara:E ::= EE | i

    E::= +E| *E