3 Teo Gramaticas 1

34
20/04/2015 1 Teoría de la Computación Fundamentos de la Teoría de Gramáticas -1- 1 Dra. Norka Bedregal Alpaca Dra. Norka Bedregal Alpaca 2 GRAMÁTICAS FORMALES INTRODUCCIÓN INTRODUCCIÓN

description

Gramaticas

Transcript of 3 Teo Gramaticas 1

  • 20/04/2015

    1

    Teora de la Computacin

    Fundamentos de la Teora de Gramticas

    -1-

    1

    Dra. Norka Bedregal Alpaca

    Dra. Norka Bedregal Alpaca

    2

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    INTRODUCCININTRODUCCIN

  • 20/04/2015

    2

    IntroduccinIntroduccin

    Los lenguajes son subconjuntos de las palabras sobre un alfabeto

    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 dice que las gramticas son formales porque se centran en los estudios de los lenguajes formales.

    Los lenguajes formales son aquellos que estn definidos a partir de reglas preestablecidas.

    Para los lenguajes naturales existen otro tipo de gramticas.

    Dra. Norka Bedregal Alpaca

    3

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica FormalGramtica Formal

    Cmo se pueden definir las palabras que pertenecen a un determinado lenguaje? Enumerando el conjunto de palabras

    Qu sucede si algunos lenguajes son infinitos? Descripcin informal de las palabras:

    Puede ser complicado e impreciso Descripcin formal, basada en los operadores de

    palabras: No es suficiente para especificar todos los

    lenguajes Es necesario un formalismo para definir los lenguajes

    (las palabras que pertenecen a un lenguaje). una posibilidad: Gramticas formales:

    Dra. Norka Bedregal Alpaca

    4

    GR

    AMT

    ICA

    S FO

    RM

    ALES

  • 20/04/2015

    3

    Gramtica FormalGramtica Formal

    Gramtica formal: Una gramtica describe de forma inequvoca la

    estructura de las palabras de un lenguaje Proporciona un mecanismo para generar todas las

    palabras que pertenecen a un determinado lenguaje Tambin se llaman gramticas generadoras

    Dra. Norka Bedregal Alpaca

    5

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Dra. Norka Bedregal Alpaca

    6

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    PRODUCCIONESDERIVACIONES

    PRODUCCIONESDERIVACIONES

  • 20/04/2015

    4

    ProduccionesProduccionesDefinicin (Produccin):Sea un alfabeto. Una produccin, regla de produccin, regla de derivacin, o regla de escritura, es un par ordenado (x, y), tambin representado por x ::= y, tal que:

    x + y *donde x es la cabeza o parte izquierda de la produccin, e y su cuerpo o parte derecha.Es decir, si se encuentra x como parte de cualquier palabra v, se puede sustituir x por y en v, lo que permite transformar palabras en otras

    Dra. Norka Bedregal Alpaca

    7

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Ejemplos: = {ab}; a ::= bbv = aabbaa

    w1 = bbabbaa w2 = aabbaa w3 = bbbbbbaa w4 = aabbabb

    Dra. Norka Bedregal Alpaca

    8

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    ProduccionesProducciones

  • 20/04/2015

    5

    DerivacionesDerivacionesDefinicin (Derivacin directa):Sea un alfabeto, x ::= y una produccin sobre , sean v, w *.

    Se dice que w es una derivacin directa de v, o v produce directamente w, o v se reduce de forma directa a w, y se representa por v w, si:

    Dra. Norka Bedregal Alpaca

    9

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    uyzwuxzvuz == :, *

    Se cumple que para cada produccin x::=y existe una derivacin directa (haciendo z = u = ) tal que x yEjemplo:

    = {A, B, C, , X, Y, Z}BA ::= ME

    CABALLO ::= CAMELLO

    Definicin (Derivacin):Sean un alfabeto, P un conjunto de producciones sobre . Sean v y w dos palabras de *. Se dice que w deriva de v, o v produce w, o v se reduce a w, y se presenta por v * w si:

    1. v = w 2. Existe una secuencia finita de derivaciones

    directas u0 u1

    u1 u2

    un-1 un , tales que u0 = v y un = wEs la aplicacin de una secuencia de producciones a una palabra.

    Dra. Norka Bedregal Alpaca

    10

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    DerivacionesDerivaciones

  • 20/04/2015

    6

    La longitud de una derivacin v * w es el nmero de derivaciones directas en la secuencia.

    El operador + se refiere a una derivacin con longitud >0.

    Ejemplos:1. 1. La longitud de u *u es 0.2. = { C, N, 0, 1, 2 }

    P = { N::=CN, N::=C, C::=0, C::=1, C::=2} N CN CN CC CC 0C 0C 00

    N *00 con longitud 4Dra. Norka Bedregal Alpaca

    11

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    DerivacionesDerivaciones

    Definiciones: Derivacin ms a la izquierda:Se utiliza en cada derivacin directa la produccin aplicada a los smbolos ms 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.

    Dra. Norka Bedregal Alpaca

    12

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    DerivacionesDerivaciones

  • 20/04/2015

    7

    1. Reflexiva:

    2. Transitiva:

    3. Simtrica: no se cumple

    Dra. Norka Bedregal Alpaca

    13

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Propiedades de la derivacinPropiedades de la derivacin

    xxx *: +

    zxzyyxsizyx ***:,, +

    Dra. Norka Bedregal Alpaca

    14

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    GRAMTICAS FORMALES

    GRAMTICAS FORMALES

  • 20/04/2015

    8

    Motivacin:Ejemplo Castellano:La sintaxis del castellano se define mediante reglas:

    1. Una oracin consta de sujeto y predicado y termina con un punto.

    2. Un sujeto es una frase nominal.3. Una frase nominal es un grupo nominal seguido

    de un calificativo (que puede faltar)4. ...

    Dra. Norka Bedregal Alpaca

    15

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

    Motivacin:Ejemplo Castellano:Se pueden usar producciones para representar estas reglas: ::= . ::= ::= ::=

    Dra. Norka Bedregal Alpaca

    16

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

  • 20/04/2015

    9

    Se puede analizar si una palabra del lenguaje (en castellano se llaman frases) es gramaticalmente correcta:

    Dra. Norka Bedregal Alpaca

    17

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

    La idea consiste en definir un lenguaje mediante reglas de produccin.Ejemplo: lenguaje formal 1 = { S, A, a, b }P = { S::=Ab, A::=aAb, A::= }Cules son las posibles derivaciones (irreducibles) desde ? S Ab b S Ab aAbb abb S Ab aAbb aaAbbb aabbb ...

    { x | S * xyx es irreducible} = {an bn+1 |n 0}

    Dra. Norka Bedregal Alpaca

    18

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

  • 20/04/2015

    10

    Ejemplo: lenguaje formal 2 = { S, a, b }P = { S::= , S::=aSb} {x | S * xyx es irreducible }?

    Se puede considerar que los elementos de tienen distinta funcionalidad: S y A : variables (smbolos no terminales) a y b : smbolos terminales S: smbolo no terminal de partida (axioma)

    Dra. Norka Bedregal Alpaca

    19

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

    Definicin (Gramtica formal):Se denomina gramtica formal a una cudrupla:

    G = (N, T, S, P ) donde: N es un conjunto finito llamado alfabeto de smbolos

    no terminales o, simplemente alfabeto de variables T es un conjunto finito, se denomina alfabeto de

    smbolos terminales N y T son disjuntos; se cumple que es la unin de

    N y T S N es una variable distinguida que se denomina

    axioma o smbolo inicial

    Dra. Norka Bedregal Alpaca

    20

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

  • 20/04/2015

    11

    Definicin (Gramtica formal): P es un conjunto finito llamado conjunto de

    producciones (o simplemente sistema de escritura) cuyos elementos tienen la forma u ::= v, tal que:

    o u + v *

    o u = xAy, x,y * , A N

    Dra. Norka Bedregal Alpaca

    21

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

    Dra. Norka Bedregal Alpaca

    22

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

    Nota: Para obtener el lenguaje hay que derivar desde el axioma.

  • 20/04/2015

    12

    Ejemplos:1. G1 = ({S,A), {a,b}, S, P)

    P = { S::=Ab, A::=aAb, A::= }

    2. G = (N , T , S, P) no es una gramtica si S N u ::= v P con u T *

    Existe a tal que a T a N

    Dra. Norka Bedregal Alpaca

    23

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

    Definicin:Una gramtica se encuentra representada en la forma Backus-Naur (BNF), si todas las producciones tienen la forma u::=v y todas las producciones con la misma cabeza:

    u ::= v , u ::= w, ...

    se representan por: u ::= v | w | ...

    Dra. Norka Bedregal Alpaca

    24

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica forma Backus-Naur (BNF)Gramtica forma Backus-Naur (BNF)

  • 20/04/2015

    13

    Ejemplo: Sea la gramtica

    T = {0, 1, 2}N = {N, C}S = NP = { N::=NC, N::=C, C::=0, C::=1, C::=2}

    Es posible establecer una notacin simplificada para las reglas de produccin. Si existen dos reglas de la forma

    u::=v

    u::=w

    se pueden representar de la forma u::=v | w, con lo que:N ::= NC | C C ::= 0 | 1 | 2

    Dra. Norka Bedregal Alpaca

    25

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica forma Backus-Naur (BNF)Gramtica forma Backus-Naur (BNF)

    Ejemplo:Dada G = ( {0, 1, 2, 3, 4, , 9}, { N, C }, N, P)con P = { N ::= NC | C , C ::= 0 | 1 | 2 | 3 | | 9 }

    Luego L(G) = {N}Entonces, para crear 2015 N

    N NC N5 NC5 N15 NC15 N015 C015 2015

    Dra. Norka Bedregal Alpaca

    26

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

  • 20/04/2015

    14

    Ejemplo:Dada la gramtica G = ( { 0, 1 }, { S }, S, P)con P = { S ::= 00S1 | }

    Luego el lenguaje generado es L(G) = { 02n 12n / n 0 }

    puesto queS 00 S 11 00 11 = 0212

    Dra. Norka Bedregal Alpaca

    27

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

    Ejemplo:Dada la gramtica G = ( { a, b } , { A, B, C }, A, P)con el conjunto de producciones:P = { A ::= aABC | abC, CB ::= BC, bB ::= bb, bC ::= b }

    Encuentre L(G) = ?

    Dra. Norka Bedregal Alpaca

    28

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramtica formalGramtica formal

  • 20/04/2015

    15

    Definicin (forma sentencial):Sea una gramtica G = ( N, T, S, P). Una forma sentencial de G es una secuencia de smbolos x * tal que S * x.

    Ejemplo:G = ( {S,A), { a, b}, S, P)P = { S ::= Ab, A ::= aAb | }

    Formas sentenciales: S, Ab, aaAbbb, aabbb, b No lo son: a, aaAbb

    Dra. Norka Bedregal Alpaca

    29

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Formas sentenciales y SentenciasFormas sentenciales y Sentencias

    Ejemplo:Sea la gramtica

    T = {0, 1, 2}N = {N, C}S = NP = { N::=NC, N::=C, C::=0, C::=1, C::=2}

    las siguientes son formas sentenciales: NCC, NC2, 120

    S = N NC NCCS = N NC NCC NC2S = N NC NCC CCC 1CC 12C 120

    Dra. Norka Bedregal Alpaca

    30

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Formas sentenciales y SentenciasFormas sentenciales y Sentencias

  • 20/04/2015

    16

    Definicin (sentencia):Una sentencia de G es una forma sentencial x tal que:

    x T*

    Es decir, las sentencias estarn compuestas nicamente por smbolos terminales.

    Ejemplo:En el ejemplo anterior es sentencia: 120

    Dra. Norka Bedregal Alpaca

    31

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Formas sentenciales y SentenciasFormas sentenciales y Sentencias

    Dra. Norka Bedregal Alpaca

    32

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    LENGUAJE ASOCIADO A UNA

    GRAMTICA

    LENGUAJE ASOCIADO A UNA

    GRAMTICA

  • 20/04/2015

    17

    Definicin (lenguaje reconocido):Dada una gramtica G = ( N, T, S, P), se llama lenguaje reconocido por G, lenguaje asociado a G, lenguaje descrito por G o lenguaje generado por G, al conjunto formado por todas las sentencias de G:

    L(G) = { x | S * x x T* }

    Nota: A las sentencias tambin se les denomina palabras

    Ejemplos:1. G1 = ( {S,A), { a, b}, S, P)

    con P={S::=Ab, A::=aAb| }L (G1) = {an bn+1 | n 0}

    Dra. Norka Bedregal Alpaca

    33

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Lenguaje asociado a una gramticaLenguaje asociado a una gramtica

    Ejemplos:2. G2 = ( {S, A), { a, b}, S, P)

    con P= {S::=Ab, A::=aAb}L(G2)?

    Dra. Norka Bedregal Alpaca

    34

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Lenguaje asociado a una gramticaLenguaje asociado a una gramtica

    3. G3 = ( {S,A), {a ,b }, S, P) con P = { S ::=Ab, A::=aAb|aS }L(G3)?

    4. G4 = ( {S, A), { a, b}, S, P) con P = { S::=Ab, A::=ab|a}

    L(G4)?

  • 20/04/2015

    18

    Dra. Norka Bedregal Alpaca

    35

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Lenguaje asociado a una gramticaLenguaje asociado a una gramticaEjemplos:5. G5 = ( {A, B, C, D, E, S}, {a}, S, P )

    con P = { S ::= ABaC, Ba::=aaB,BC::=DC|E, aD::=Da, AD::=AB, aE::=Ea, AE::= }

    L(G5)?

    6. G6 = ( {S,A), {a, b}, S, P) con P = { S::=Ab, A::=Aab|a}L(G6)?

    Observacin: Ya que la teora de gramticas formales (Chomsky),

    junto con la notacin BNF, proporciona una forma de describir lenguajes

    Esta simbologa se considera como un meta lenguaje (lenguaje para describir lenguajes).

    Dra. Norka Bedregal Alpaca

    36

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Lenguaje asociado a una gramticaLenguaje asociado a una gramtica

  • 20/04/2015

    19

    Tipos de GramticasTipos 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 del siguiente, de acuerdo con el siguiente esquema:

    Dra. Norka Bedregal Alpaca

    37

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Dra. Norka Bedregal Alpaca

    38

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    TIPOS DE GRAMTICAS

    TIPOS DE GRAMTICAS

  • 20/04/2015

    20

    Tipos de GramticasTipos de Gramticas

    Jerarqua de Chomsky:

    L(G0) = lenguajes recursivamente enumerables o sin restricciones

    L(G1) = lenguajes sensibles al contexto L(G2) = lenguajes independientes del contexto L(G3) = lenguajes regulares

    Dra. Norka Bedregal Alpaca

    39

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

    Tambin llamadas gramticas sin restricciones

    Definicin (Gramticas Tipo 0):Las gramticas de tipo 0 son las definidas anteriormente, cuyas reglas de produccin tiene la forma:

    xAy ::= v con x, y ,v * , A N

    En las reglas de produccin: La parte izquierda no puede ser la palabra vaca. En la parte izquierda debe aparecer algn smbolo no

    terminal.

    Dra. Norka Bedregal Alpaca

    40

    GR

    AMT

    ICA

    S FO

    RM

    ALES

  • 20/04/2015

    21

    Gramticas tipo 0Gramticas tipo 0

    Puede demostrarse que todo lenguaje representado por este tipo de gramticas pueden ser descritos tambin por un grupo de gramticas un poco ms restringido

    A este grupo se le llama gramticas de estructura de frases

    Definicin (gramtica de estructura de frases):Una gramtica de estructura de frases es aquella cuyasproducciones tienen la forma:

    xAy ::= xvy con x, y, v *, A N

    Dra. Norka Bedregal Alpaca

    41

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Nota:

    v puede ser la palabra vaca Luego, en estas reglas se puede encontrar situaciones

    en que la parte derecha sea ms corta que la izquierda. Las reglas en que ocurre esto se denominan

    compresoras. Una gramtica que contenga al menos una regla

    compresora se denomina gramtica compresora. En las gramticas compresoras, las derivaciones

    pueden ser decrecientes, ya que la longitud de las palabras puede disminuir en cada uno de los pasos de derivacin.

    Dra. Norka Bedregal Alpaca

    42

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

  • 20/04/2015

    22

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

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

    Esta gramtica es de tipo 0, y no es de estructura de frases por la regla CB ::= 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 podr ser BC

    Dra. Norka Bedregal Alpaca

    43

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

    Ejemplo (continuacin): Considerando x= C, A = B, y= . Se tendra

    formada la parte izquierda de la regla, pero en la derecha se tendra Cv, y cualquiera sea el valor de v no se podr 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 de estructura de frases.

    Para la produccin: A ::= aABC A = A, x = , y= . Si se hace v= aABC, la regla

    se ajusta al formato considerado.

    Dra. Norka Bedregal Alpaca

    44

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

  • 20/04/2015

    23

    Ejemplo (continuacin): Sin embargo la regla CB ::= BC puede descomponerse

    en las cuatro reglas siguientes, que permiten obtener las mismas derivaciones con ms pasos, pero ajustndose a las condiciones exigidas para que la gramtica sea de estructura de frases.

    CB ::= XB XB ::= XY

    XY ::= BY

    BY ::= BCLa gramtica resultante, tendr 3 reglas de produccin ms y dos smbolos adicionales (X, Y) en el alfabeto de smbolos no terminales.

    Dra. Norka Bedregal Alpaca

    45

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

    Ejemplo (continuacin): Considerando 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 de la regla bC ::= b.

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

    Dra. Norka Bedregal Alpaca

    46

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

  • 20/04/2015

    24

    Ejercicios:De las siguientes producciones, indicar cuales cumplen el criterio de gramticas de estructura de frases y cuales no.

    aABcD ::= aABD

    aAd ::= ad aABd ::= aACDEfAd aABE ::= aABeE

    CB::=BC

    Dra. Norka Bedregal Alpaca

    47

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

    Ejercicio: Cmo convertir CB::=BC en estructura de frases?CB ::= XB; XB ::= XY; XY ::= BY; BY ::= BC

    Propiedad de las gramticas de tipo 0Todo lenguaje descrito por una gramtica del tipo 0, puede ser generado por una gramtica de estructuras de frases.

    Dra. Norka Bedregal Alpaca

    48

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 0Gramticas tipo 0

  • 20/04/2015

    25

    Tambin llamadas gramticas sensibles al contexto. Los lenguajes generados por este tipo de gramticas se denominan dependientes del contexto.

    Definicin (Gramticas de tipo 1)::Las gramticas de tipo 1 son aquellas cuyas producciones tienen una de las dos formas siguientes:

    1. xAy ::= xvy con x, y *, A N, v +

    2. S ::= siendo S N el axiomaObservaciones: A puede transformarse en v slo si aparece en el

    contexto definido por x e y.

    Dra. Norka Bedregal Alpaca

    49

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 1Gramticas tipo 1

    Observaciones (continuacin): Las producciones mantienen el contexto pero no

    pueden ser compresoras (con la excepcin de S::= ) Luego, si no se utiliza la regla S::= , se tiene:

    S u1 u2 ... uncon 1 |u1| |u2| ... |un|

    La regla S::= permite generar la palabra vaca. Como consecuencia se tiene que la palabra vaca

    pertenece al lenguaje generado por la gramtica slo si contiene esta regla.

    Todas las gramticas de tipo 1 son tambin de tipo 0, y as, todos los lenguajes dependientes de contexto sern tambin lenguajes sin restricciones.

    Dra. Norka Bedregal Alpaca

    50

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 1Gramticas tipo 1

  • 20/04/2015

    26

    Ejemplo:Dada la gramtica G = ( {S, B, C}, {a, b, b}, S, P ), donde P es:

    S ::= aSBc | aBC bB ::= bb bC ::= bc CB ::= BC cC ::= cc aB ::= abG es una gramtica tipo 1

    Dra. Norka Bedregal Alpaca

    51

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 1Gramticas tipo 1

    Ejercicios: Cules de las siguientes reglas son de tipo 1?

    a) AB ::= aCdBb) aA ::= aCBbbc) aBA ::= ad) ABC ::= ACe) AaBF ::= AaCF

    Dra. Norka Bedregal Alpaca

    52

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 1Gramticas tipo 1

  • 20/04/2015

    27

    Tambin llamadas gramticas independientes del contexto

    Definicin:Las gramticas de tipo 2 son aquellas cuyas producciones tienen la forma:

    A ::= v con v * , A NEn concreto v puede ser .Observaciones: A ::= es una produccin de tipo 2. 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 palabra vaca.

    Dra. Norka Bedregal Alpaca

    53

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 2Gramticas tipo 2

    Observaciones (Continuacin): A ::= es una produccin de tipo 2. 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 palabra vaca.

    Si se le aade a la segunda gramtica la regla S ::= , las gramticas generarn el mismo lenguaje.

    Luego, todo lenguaje generado por una gramtica de tipo 2 puede ser generado por una gramtica definida de manera ms restringida, cuyas producciones tienen la forma:

    1. A ::= v con v + , A N2. S ::= siendo S el axioma de la gramtica

    Dra. Norka Bedregal Alpaca

    54

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 2Gramticas tipo 2

  • 20/04/2015

    28

    Observaciones (Continuacin): Los lenguajes generados por este tipo de gramticas

    se denominan independientes de contexto, ya que la conversin de A en v puede realizarse independientemente del contexto en que aparezca A.

    La mayor parte de los lenguajes de programacin de computadores pueden describirse 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

    Dra. Norka Bedregal Alpaca

    55

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 2Gramticas tipo 2

    Se observa que el lenguaje definido por esta gramtica es { an bn | n = 1, 2, ... }

    Un mismo lenguaje puede generarse por varias gramticas diferentes.

    Sin embargo, una gramtica determinada describe siempre un lenguaje nico.

    Dra. Norka Bedregal Alpaca

    56

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 2Gramticas tipo 2

  • 20/04/2015

    29

    Ejercicios:Cules de las siguientes reglas son de tipo 2?

    AA ::= b A ::= aaB

    aBA ::= a

    a ::= AC A ::=

    Dra. Norka Bedregal Alpaca

    57

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 2Gramticas tipo 2

    Tambin llamadas gramticas regulares

    Definicin (Gramticas regulares normalizadas):

    Gramticas lineales por la izquierda: Todas aquellas cuyas producciones tienen una de las siguientes formas:

    A ::= a

    A ::= Va (S, A,V N, a T, y S el axioma)S ::=

    Dra. Norka Bedregal Alpaca

    58

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

  • 20/04/2015

    30

    Gramticas lineales por la derecha: Todas aquellas cuyas producciones tienen una de las siguientes formas:

    A ::= a

    A ::= aV ( S, A, V N, a T y S el axioma)S ::=

    Una gramtica es regular (o de tipo 3) si es lineal por la derecha o lineal por la izquierda.

    Observacin:Los lenguajes representados por una gramtica regular se denominan lenguajes regulares.

    Dra. Norka Bedregal Alpaca

    59

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

    Ejemplos:1. 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, ...}

    2. G2 = ( { 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A } )Gramtica lineal derecha que genera el mismo lenguaje que la gramtica anterior.

    3. G3 = ( {A,B,C}, {a, b}, A, {A ::= aB, B ::= Cb, ...} )No es lineal por la derecha ni lineal por la izquierda, pero s es una gramtica lineal.

    Dra. Norka Bedregal Alpaca

    60

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

  • 20/04/2015

    31

    Ejercicios:Cules de las siguientes reglas son de tipo 3?

    aA ::= aaV

    A ::= abV A ::= Ba

    A ::= C A ::=

    Dra. Norka Bedregal Alpaca

    61

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

    Observaciones:Hay definiciones ms generales para gramticas lineales por la derecha (izquierda) [Linz]:Una gramtica se denomina lineal por la derecha si sus producciones tienen las siguientes formas:

    A ::= xB

    A ::= x donde A,B N y x T*

    Dra. Norka Bedregal Alpaca

    62

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

  • 20/04/2015

    32

    Ejemplo:Lenguaje representado por G1 = ( {S, A, B}, {0,1}, S, P )Con P = { S ::= 0A | 1, A ::= 1A | 1B, B ::= 0S }

    Luego: S 1 S 0A 01B 010S 0101 S 0A 01A 011B 0110S 01101 S 0A 01A 011B 0110S 01100A

    011001B 0110010S 01100101 S 0A *01...1A 01...1B 01...1B

    01...10S 01...101

    Dra. Norka Bedregal Alpaca

    63

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

    Ejemplo (continuacin):Lenguaje representado por G1 = ( {S, A, B}, {0,1}, S, P )Con P = { S ::= 0A | 1, A ::= 1A | 1B, B ::= 0S }

    S 0A *01...1A 01...1B 01...10S 01...100A *01...1001...1A *01...1001...1B 01...1001...10S 01...1001...101

    Luego el lenguaje generado es:L(G) = { (0 1i 0)j 1 | i 1, j 0}

    Dra. Norka Bedregal Alpaca

    64

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

  • 20/04/2015

    33

    Ejercicios:Encuentre los lenguajes generados por las siguientes gramticas1. Lenguaje representado por

    G = ( { S, B }, { 0, 1 }, S, P )con P = { S ::= B1 | 1, B ::= S0 }

    2. Lenguaje representado por G = ( { S, B }, { 0, 1 }, S, P ) con P = { S ::= 1B | 1, B ::= 0S }

    Dra. Norka Bedregal Alpaca

    65

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

    Ejercicios:Encuentre los lenguajes generados por las siguientes gramticas1. Lenguaje representado por

    G = ( { S, B }, { 0, 1 }, S, P )con P = { S ::= B1 | 1, B ::= S0 }

    2. Lenguaje representado por G = ( { S, B }, { 0, 1 }, S, P ) con P = { S ::= 1B | 1, B ::= 0S }

    Dra. Norka Bedregal Alpaca

    66

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Gramticas tipo 3Gramticas tipo 3

  • 20/04/2015

    34

    Dra. Norka Bedregal Alpaca

    67

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    ResumenResumen

    Dra. Norka Bedregal Alpaca

    68

    GR

    AMT

    ICA

    S FO

    RM

    ALES

    Continuara.Continuara.