• No se han encontrado resultados

aylfm161p08

N/A
N/A
Protected

Academic year: 2020

Share "aylfm161p08"

Copied!
131
0
0

Texto completo

(1)

Autómatas y Lenguajes Formales 2016-1

Maestría en Ciencia e Ingeniería de la Computación UNAM Tema 8: Gramáticas, jerarquía de Chomsky, ambigüedad

Dr. Favio Ezequiel Miranda Perea

[email protected]

Facultad de Ciencias UNAM

(2)

Gramáticas

Introducción

Un mecanismo relevante para generar un lenguaje es mediante el concepto de gramática formal.

Las gramáticas formales fueron introducidas por Noam Chomsky en 1956.

La intención era tener un modelo para la descripción de lenguajes naturales.

(3)

Gramáticas

Introducción

Un mecanismo relevante para generar un lenguaje es mediante el concepto de gramática formal.

Las gramáticas formales fueron introducidas por Noam Chomsky en 1956.

La intención era tener un modelo para la descripción de lenguajes naturales.

(4)

Gramáticas

Introducción

Un mecanismo relevante para generar un lenguaje es mediante el concepto de gramática formal.

Las gramáticas formales fueron introducidas por Noam Chomsky en 1956.

La intención era tener un modelo para la descripción de lenguajes naturales.

(5)

Gramáticas

Introducción

Un mecanismo relevante para generar un lenguaje es mediante el concepto de gramática formal.

Las gramáticas formales fueron introducidas por Noam Chomsky en 1956.

La intención era tener un modelo para la descripción de lenguajes naturales.

(6)

Gramáticas

Definición

Una gramática es una cuaternaG=hV,T,S,Pital que:

V es un alfabeto devariablesosímbolos no-terminales, los

cuales se denotan con mayúsculasA,B,C, . . .

T es un alfabeto desímbolos terminales, los cuales se denotan

con minúsculasa,b,c, . . .. Además se requiereT ∩V =∅.

S∈V es una variable distinguida llamada elsímbolo inicial.

P es un conjunto finito de reglas de reescritura, llamadasreglas

(7)

Gramáticas

Definición

Una gramática es una cuaternaG=hV,T,S,Pital que:

V es un alfabeto devariablesosímbolos no-terminales, los

cuales se denotan con mayúsculasA,B,C, . . .

T es un alfabeto desímbolos terminales, los cuales se denotan

con minúsculasa,b,c, . . .. Además se requiereT ∩V =∅.

S∈V es una variable distinguida llamada elsímbolo inicial.

P es un conjunto finito de reglas de reescritura, llamadasreglas

(8)

Gramáticas

Definición

Una gramática es una cuaternaG=hV,T,S,Pital que:

V es un alfabeto devariablesosímbolos no-terminales, los

cuales se denotan con mayúsculasA,B,C, . . .

T es un alfabeto desímbolos terminales, los cuales se denotan

con minúsculasa,b,c, . . .. Además se requiereT ∩V =∅.

S∈V es una variable distinguida llamada elsímbolo inicial.

P es un conjunto finito de reglas de reescritura, llamadasreglas

(9)

Gramáticas

Definición

Una gramática es una cuaternaG=hV,T,S,Pital que:

V es un alfabeto devariablesosímbolos no-terminales, los

cuales se denotan con mayúsculasA,B,C, . . .

T es un alfabeto desímbolos terminales, los cuales se denotan

con minúsculasa,b,c, . . .. Además se requiereT ∩V =∅.

S∈V es una variable distinguida llamada elsímbolo inicial.

P es un conjunto finito de reglas de reescritura, llamadasreglas

(10)

Gramáticas

Definición

Una gramática es una cuaternaG=hV,T,S,Pital que:

V es un alfabeto devariablesosímbolos no-terminales, los

cuales se denotan con mayúsculasA,B,C, . . .

T es un alfabeto desímbolos terminales, los cuales se denotan

con minúsculasa,b,c, . . .. Además se requiereT ∩V =∅.

S∈V es una variable distinguida llamada elsímbolo inicial.

P es un conjunto finito de reglas de reescritura, llamadasreglas

(11)

Reglas de Producción

Gramáticas

El conjunto de reglas de producciónP es un conjunto finito de pares

hα, βitales que

α∈(V ∪T)?−T?. Es decir,αes una cadena de símbolos

terminales ó no terminales, con al menos un símbolo no-terminal.

β ∈(V∪T)?. Es decir,β es una cadena de símbolos deV ∪T ,

los cuales podrían ser todos terminales.

Usualmente en vez de escribirhα, βi ∈P escribimos

α→β

(12)

Reglas de Producción

Gramáticas

El conjunto de reglas de producciónP es un conjunto finito de pares

hα, βitales que

α∈(V ∪T)?−T?. Es decir,αes una cadena de símbolos

terminales ó no terminales, con al menos un símbolo no-terminal.

β ∈(V∪T)?. Es decir,β es una cadena de símbolos deV ∪T ,

los cuales podrían ser todos terminales.

Usualmente en vez de escribirhα, βi ∈P escribimos

α →β

(13)

Reglas de Producción

Gramáticas

El conjunto de reglas de producciónP es un conjunto finito de pares

hα, βitales que

α∈(V ∪T)?−T?. Es decir,αes una cadena de símbolos

terminales ó no terminales, con al menos un símbolo no-terminal.

β ∈(V∪T)?. Es decir,β es una cadena de símbolos deV ∪T ,

los cuales podrían ser todos terminales.

Usualmente en vez de escribirhα, βi ∈P escribimos

α →β

(14)

Reglas de Producción

Gramáticas

El conjunto de reglas de producciónP es un conjunto finito de pares

hα, βitales que

α∈(V ∪T)?−T?. Es decir,αes una cadena de símbolos

terminales ó no terminales, con al menos un símbolo no-terminal.

β ∈(V∪T)?. Es decir,β es una cadena de símbolos deV ∪T ,

los cuales podrían ser todos terminales.

Usualmente en vez de escribirhα, βi ∈P escribimos

α →β

(15)

Reglas de Producción

Gramáticas

El conjunto de reglas de producciónP es un conjunto finito de pares

hα, βitales que

α∈(V ∪T)?−T?. Es decir,αes una cadena de símbolos

terminales ó no terminales, con al menos un símbolo no-terminal.

β ∈(V∪T)?. Es decir,β es una cadena de símbolos deV ∪T ,

los cuales podrían ser todos terminales.

Usualmente en vez de escribirhα, βi ∈P escribimos

(16)

Derivaciones

Generación de cadenas

Las reglas de producción sirven para generar cadenas, proceso que se formaliza mediante las derivaciones formales:

Dadas dos palabrasw,v ∈(V ∪T)? decimos quev esderivablea

partir dew en un paso (w →v) si y sólo si:

Existe una reglaα→β enP y cadenasγ1, γ2∈(V∪T)? tales

que:

w =γ1αγ2 y v =γ1βγ2

Algunos autores utilizan⇒en vez de→para denotar la relación

(17)

Derivaciones

Generación de cadenas

Las reglas de producción sirven para generar cadenas, proceso que se formaliza mediante las derivaciones formales:

Dadas dos palabrasw,v ∈(V ∪T)? decimos quev esderivablea

partir dew en un paso (w→v) si y sólo si:

Existe una reglaα→β enP y cadenasγ1, γ2∈(V∪T)? tales

que:

w =γ1αγ2 y v =γ1βγ2

Algunos autores utilizan⇒en vez de→para denotar la relación

(18)

Derivaciones

Generación de cadenas

Las reglas de producción sirven para generar cadenas, proceso que se formaliza mediante las derivaciones formales:

Dadas dos palabrasw,v ∈(V ∪T)? decimos quev esderivablea

partir dew en un paso (w→v) si y sólo si:

Existe una reglaα→β enP y cadenasγ1, γ2∈(V ∪T)? tales

que:

w =γ1αγ2 y v =γ1βγ2

Algunos autores utilizan⇒en vez de→para denotar la relación

(19)

Derivaciones

Generación de cadenas

Las reglas de producción sirven para generar cadenas, proceso que se formaliza mediante las derivaciones formales:

Dadas dos palabrasw,v ∈(V ∪T)? decimos quev esderivablea

partir dew en un paso (w→v) si y sólo si:

Existe una reglaα→β enP y cadenasγ1, γ2∈(V ∪T)? tales

que:

w =γ1αγ2 y v =γ1βγ2

Algunos autores utilizan⇒en vez de→para denotar la relación

(20)

Derivaciones formales

→?

Decimos que una cadenav esderivablea partir dew si existen

palabrasγ2, . . . , γntales que

w =γ1→γ2. . . γn+1→γn=v

(21)

Derivaciones formales

→?

Decimos que una cadenav esderivablea partir dew si existen

palabrasγ2, . . . , γntales que

w =γ1→γ2. . . γn+1→γn=v

(22)

Lenguaje generado por una gramática

L(G)

Dada una gramáticaG=hV,T,S,Pidefinimos al lenguaje generado

porG, denotadoL(G), como el conjunto de palabras de símbolos

terminalesderivables a partir del símbolo inicialS. Es decir,

(23)

Lenguaje generado por una gramática

L(G)

Dada una gramáticaG=hV,T,S,Pidefinimos al lenguaje generado

porG, denotadoL(G), como el conjunto de palabras de símbolos

terminalesderivables a partir del símbolo inicialS. Es decir,

(24)

L

= (

a

+

b

)

?

Ejemplos

Cualquier cadena de aes y bes debe generarse.

La cadena vacía debe generarse:

S→ε

Siw ∈Lentonceswa∈L

S→Sa

Siw ∈Lentonceswb∈L

S→Sb

Ejemplo de derivación:w =ababb

(25)

L

= (

a

+

b

)

?

Ejemplos

Cualquier cadena de aes y bes debe generarse. La cadena vacía debe generarse:

S→ε

Siw ∈Lentonceswa∈L

S→Sa

Siw ∈Lentonceswb∈L

S→Sb

Ejemplo de derivación:w =ababb

(26)

L

= (

a

+

b

)

?

Ejemplos

Cualquier cadena de aes y bes debe generarse. La cadena vacía debe generarse:

S→ε

Siw ∈Lentonceswa∈L

S→Sa

Siw ∈Lentonceswb∈L

S→Sb

Ejemplo de derivación:w =ababb

(27)

L

= (

a

+

b

)

?

Ejemplos

Cualquier cadena de aes y bes debe generarse. La cadena vacía debe generarse:

S→ε

Siw ∈Lentonceswa∈L

S→Sa

Siw ∈Lentonceswb∈L

S→Sb

Ejemplo de derivación:w =ababb

(28)

L

= (

a

+

b

)

?

Ejemplos

Cualquier cadena de aes y bes debe generarse. La cadena vacía debe generarse:

S→ε

Siw ∈Lentonceswa∈L

S→Sa

Siw ∈Lentonceswb∈L

S→Sb

Ejemplo de derivación:w =ababb

(29)

L

=

{

a

i

b

j

|

i

,

j

N

,

i

j

}

Ejemplos

La cadena vacía debe generarse (i=j=0):

S→ε

Debe haber al menos tantas bes como aes, primero aes y luego bes:

S→aSb

Puede haber más bes al final:

S→Sb

Ejemplo de derivación:w =aabbb

(30)

L

=

{

a

i

b

j

|

i

,

j

N

,

i

j

}

Ejemplos

La cadena vacía debe generarse (i=j=0):

S→ε

Debe haber al menos tantas bes como aes, primero aes y luego bes:

S→aSb

Puede haber más bes al final:

S→Sb

Ejemplo de derivación:w =aabbb

(31)

L

=

{

a

i

b

j

|

i

,

j

N

,

i

j

}

Ejemplos

La cadena vacía debe generarse (i=j=0):

S→ε

Debe haber al menos tantas bes como aes, primero aes y luego bes:

S→aSb

Puede haber más bes al final:

S→Sb

Ejemplo de derivación:w =aabbb

(32)

L

=

{

a

i

b

j

|

i

,

j

N

,

i

j

}

Ejemplos

La cadena vacía debe generarse (i=j=0):

S→ε

Debe haber al menos tantas bes como aes, primero aes y luego bes:

S→aSb

Puede haber más bes al final:

S→Sb

Ejemplo de derivación:w =aabbb

(33)

L

=

{

a

i

b

j

a

j

b

i

|

i

,

j

N

}

Ejemplos

Primero generamos el centro de la palabra,bjaj:

S→B B →bBa B→ε

Después los extremosai, bi:

S→aSb

Ejemplo de derivación:w =aababb

(34)

L

=

{

a

i

b

j

a

j

b

i

|

i

,

j

N

}

Ejemplos

Primero generamos el centro de la palabra,bjaj:

S→B B →bBa B→ε

Después los extremosai, bi:

S→aSb

Ejemplo de derivación:w =aababb

(35)

L

=

{

a

i

b

j

a

j

b

i

|

i

,

j

N

}

Ejemplos

Primero generamos el centro de la palabra,bjaj:

S→B B →bBa B→ε

Después los extremosai, bi:

S→aSb

Ejemplo de derivación:w =aababb

(36)

L

=

{

a

i

b

i

a

j

b

j

|

i

,

j

N

}

Ejemplos

El lenguaje{aibi |i ∈N}se genera mediante:

P →ε P→aPb

Para generar aLsimplemente agregamos:

S →PP

Ejemplo de derivación:w =aabbab

(37)

L

=

{

a

i

b

i

a

j

b

j

|

i

,

j

N

}

Ejemplos

El lenguaje{aibi |i ∈N}se genera mediante:

P →ε P→aPb

Para generar aLsimplemente agregamos:

S →PP

Ejemplo de derivación:w =aabbab

(38)

L

=

{

a

i

b

i

a

j

b

j

|

i

,

j

N

}

Ejemplos

El lenguaje{aibi |i ∈N}se genera mediante:

P →ε P→aPb

Para generar aLsimplemente agregamos:

S →PP

Ejemplo de derivación:w =aabbab

(39)

L

=

{

a

i

b

i

|

i

N

} ∪ {

b

i

a

i

|

i

N

}

Ejemplos

El lenguaje{aibi |i ∈N}se genera mediante:

P →ε P→aPb

El lenguaje{biai |i

N}se genera mediante:

Q→ε Q→bQa

Para generar aLsimplemente agregamos:

S→P S→Q

Ejemplo de derivación:w =bbbaaa

(40)

L

=

{

a

i

b

i

|

i

N

} ∪ {

b

i

a

i

|

i

N

}

Ejemplos

El lenguaje{aibi |i ∈N}se genera mediante:

P →ε P→aPb

El lenguaje{biai |i ∈N}se genera mediante:

Q→ε Q→bQa

Para generar aLsimplemente agregamos:

S→P S→Q

Ejemplo de derivación:w =bbbaaa

(41)

L

=

{

a

i

b

i

|

i

N

} ∪ {

b

i

a

i

|

i

N

}

Ejemplos

El lenguaje{aibi |i ∈N}se genera mediante:

P →ε P→aPb

El lenguaje{biai |i ∈N}se genera mediante:

Q→ε Q→bQa

Para generar aLsimplemente agregamos:

S→P S→Q

Ejemplo de derivación:w =bbbaaa

(42)

L

=

{

a

i

b

i

|

i

N

} ∪ {

b

i

a

i

|

i

N

}

Ejemplos

El lenguaje{aibi |i ∈N}se genera mediante:

P →ε P→aPb

El lenguaje{biai |i ∈N}se genera mediante:

Q→ε Q→bQa

Para generar aLsimplemente agregamos:

S→P S→Q

Ejemplo de derivación:w =bbbaaa

(43)

Correctud y completud

Diseño de gramáticas

Si bien muchas veces el diseño de una gramáticaGpara un

lenguaje dadoLes intuitivamente claro y correcto, esto debe

mostrarse formalmente, mostrando queL=L(G). Esto se hace,

por supuesto, mostrando lo siguiente:

Correctud: la gramáticaGgenera únicamente cadenas deL, es

decir,L(G)⊆L.

Completud: toda cadena deLes generada porG, es decir,

(44)

Correctud y completud

Diseño de gramáticas

Si bien muchas veces el diseño de una gramáticaGpara un

lenguaje dadoLes intuitivamente claro y correcto, esto debe

mostrarse formalmente, mostrando queL=L(G). Esto se hace,

por supuesto, mostrando lo siguiente:

Correctud: la gramáticaGgenera únicamente cadenas deL, es

decir,L(G)⊆L.

Completud: toda cadena deLes generada porG, es decir,

(45)

Correctud y completud

Diseño de gramáticas

Si bien muchas veces el diseño de una gramáticaGpara un

lenguaje dadoLes intuitivamente claro y correcto, esto debe

mostrarse formalmente, mostrando queL=L(G). Esto se hace,

por supuesto, mostrando lo siguiente:

Correctud: la gramáticaGgenera únicamente cadenas deL, es

decir,L(G)⊆L.

Completud: toda cadena deLes generada porG, es decir,

(46)

Lenguajes recursivamente enumerables o tipo 0

Jerarquía de Chomsky

Son aquellos lenguajes generados por una gramática sin restricciones adicionales.

Tales gramáticas pueden incluir reglas de la forma

α→ε

De manera que la gramática es capaz de borrar cadenas.

Tales

gramáticas se conocen comocontraibles.

Ejemplo:

(47)

Lenguajes recursivamente enumerables o tipo 0

Jerarquía de Chomsky

Son aquellos lenguajes generados por una gramática sin restricciones adicionales.

Tales gramáticas pueden incluir reglas de la forma

α→ε

De manera que la gramática es capaz de borrar cadenas. Tales

gramáticas se conocen comocontraibles.

Ejemplo:

(48)

Lenguajes recursivamente enumerables o tipo 0

Jerarquía de Chomsky

La siguiente es una gramática de tipo 0:

S →AT A→0AO A→1AI O0→0O

O1→1O I0→0I I1→1I OT →0T

IT →1T A→ε T →ε

L(G) ={ww |w ∈ {0,1}?}

La idea del diseño de esta gramática y la razón del nombre

(49)

Lenguajes recursivamente enumerables o tipo 0

Jerarquía de Chomsky

La siguiente es una gramática de tipo 0:

S →AT A→0AO A→1AI O0→0O

O1→1O I0→0I I1→1I OT →0T

IT →1T A→ε T →ε

L(G) ={ww |w ∈ {0,1}?}

La idea del diseño de esta gramática y la razón del nombre

(50)

Lenguajes recursivamente enumerables o tipo 0

Jerarquía de Chomsky

La siguiente es una gramática de tipo 0:

S →AT A→0AO A→1AI O0→0O

O1→1O I0→0I I1→1I OT →0T

IT →1T A→ε T →ε

L(G) ={ww |w ∈ {0,1}?}

La idea del diseño de esta gramática y la razón del nombre

(51)

Lenguajes dependientes del contexto o tipo 1

Jerarquía de Chomsky

Son aquellos generados por gramáticas con todas sus producciones son de la forma

α1Aα2→α1βα2

conα1, α2∈(V∪T)?, A∈V, β 6=ε.

Con la posible excepción de la reglaS→ε, en cuyo caso se prohibe

la presencia deSa la derecha de las producciones.

Por ejemplo la siguiente gramática dependiente del contexto genera al lenguajeL={aibici |i≥0}

S→A A→aABC|abC CB →BC

(52)

Lenguajes dependientes del contexto o tipo 1

Jerarquía de Chomsky

Son aquellos generados por gramáticas con todas sus producciones son de la forma

α1Aα2→α1βα2

conα1, α2∈(V∪T)?, A∈V, β 6=ε.

Con la posible excepción de la reglaS→ε, en cuyo caso se prohibe

la presencia deSa la derecha de las producciones.

Por ejemplo la siguiente gramática dependiente del contexto genera al lenguajeL={aibici |i≥0}

S→A A→aABC|abC CB →BC

(53)

Lenguajes libres del contexto o tipo 2

Jerarquía de Chomsky

Son aquellos generados por gramáticas con todas sus producciones de la forma

A→α

conA∈V, α∈(V∪T)?.

Esta definición incluye a la reglaS→ε.

(54)

Lenguajes libres del contexto o tipo 2

Jerarquía de Chomsky

Son aquellos generados por gramáticas con todas sus producciones de la forma

A→α

conA∈V, α∈(V∪T)?.

Esta definición incluye a la reglaS→ε.

(55)

Lenguajes libres del contexto o tipo 2

Jerarquía de Chomsky

Son aquellos generados por gramáticas con todas sus producciones de la forma

A→α

conA∈V, α∈(V∪T)?.

Esta definición incluye a la reglaS→ε.

(56)

Lenguajes regulares o tipo 3

Jerarquía de Chomsky

Son aquellos generados por una gramática de una de las siguientes formas:

Lineal por la derecha: todas las producciones de la forma

A→aB A→a A→ε

conA,B∈V, a∈T

Lineas por la izquierda: todas las producciones de la forma

A→Ba A→a A→ε

conA,B∈V, a∈T

(57)

Lenguajes regulares o tipo 3

Jerarquía de Chomsky

Son aquellos generados por una gramática de una de las siguientes formas:

Lineal por la derecha: todas las producciones de la forma

A→aB A→a A→ε

conA,B∈V, a∈T

Lineas por la izquierda: todas las producciones de la forma

A→Ba A→a A→ε

conA,B∈V, a∈T

(58)

Lenguajes regulares o tipo 3

Jerarquía de Chomsky

Son aquellos generados por una gramática de una de las siguientes formas:

Lineal por la derecha: todas las producciones de la forma

A→aB A→a A→ε

conA,B∈V, a∈T

Lineas por la izquierda: todas las producciones de la forma

A→Ba A→a A→ε

conA,B∈V, a∈T

(59)

Jerarquía de Chomsky

Observaciones

Decimos que un lenguaje es de tipoisi y sólo sii es el índice

mas grande tal que existe una gramática de tipoique genera aL

La jerarquía de gramáticas genera una jerarquía en los lenguajes generados:

L3(L2(L1(L0

La jerarquía de Chomsky permite refinar la teoría de la

(60)

Jerarquía de Chomsky

Observaciones

Decimos que un lenguaje es de tipoisi y sólo sii es el índice

mas grande tal que existe una gramática de tipoique genera aL

La jerarquía de gramáticas genera una jerarquía en los lenguajes generados:

L3(L2(L1(L0

La jerarquía de Chomsky permite refinar la teoría de la

(61)

Jerarquía de Chomsky

Observaciones

Decimos que un lenguaje es de tipoisi y sólo sii es el índice

mas grande tal que existe una gramática de tipoique genera aL

La jerarquía de gramáticas genera una jerarquía en los lenguajes generados:

L3(L2(L1(L0

La jerarquía de Chomsky permite refinar la teoría de la

(62)

Gramáticas Regulares

Una gramática regular es una gramática lineal por la derecha o lineal por la izquierda.

No se permite mezclar ambos tipos de producciones.

(63)

Gramáticas Regulares

Una gramática regular es una gramática lineal por la derecha o lineal por la izquierda.

No se permite mezclar ambos tipos de producciones.

(64)

Gramáticas Regulares

Una gramática regular es una gramática lineal por la derecha o lineal por la izquierda.

No se permite mezclar ambos tipos de producciones.

(65)

Gramáticas Regulares

Lenguajes Regulares

Decimos que un lenguajeLes regular siexisteuna gramática

regularGque lo genere, es decir, siL=L(G).

SiLes generado por una gramática de tipoi, no se puede

asegurar de inmediato queLsea un lenguaje de tipoi. Debe

(66)

Gramáticas Regulares

Lenguajes Regulares

Decimos que un lenguajeLes regular siexisteuna gramática

regularGque lo genere, es decir, siL=L(G).

SiLes generado por una gramática de tipoi, no se puede

asegurar de inmediato queLsea un lenguaje de tipoi. Debe

(67)

L

=

0

?

10

?

10

? Ejemplos

Les generado por:

S → A1A1A A → 0A|ε

esta gramática no es regular,

pero el lenguaje si lo es al existir una gramática regular equivalente:

(68)

L

=

0

?

10

?

10

? Ejemplos

Les generado por:

S → A1A1A A → 0A|ε

esta gramática no es regular, pero el lenguaje si lo es al existir una gramática regular equivalente:

(69)

L

= (

a

+

b

)

?

b

Ejemplos

Les generado por:

(70)

Lenguajes y gramáticas regulares

AF⇒ GR

Dado un AFM =hQ,Σ, δ,q0,Fiexiste una gramática regular

G=hV,T,S,Pital queL(M) =L(G). Es decir, todo lenguaje regular es generado por una gramática regular.

Definimos aGcomo sigue:

Suponemos s.p.g. que no hayε-transiciones.

V =Q T = Σ S=q0

P se define como sigue:

I Sip∈δ(q,a)entonces agregamosq→apaP.

(71)

Lenguajes y gramáticas regulares

AF⇒ GR

Dado un AFM =hQ,Σ, δ,q0,Fiexiste una gramática regular

G=hV,T,S,Pital queL(M) =L(G). Es decir, todo lenguaje regular es generado por una gramática regular.

Definimos aGcomo sigue:

Suponemos s.p.g. que no hayε-transiciones.

V =Q T = Σ S=q0

P se define como sigue:

I Sip∈δ(q,a)entonces agregamosq→apaP.

(72)

Lenguajes y gramáticas regulares

AF⇒ GR

Dado un AFM =hQ,Σ, δ,q0,Fiexiste una gramática regular

G=hV,T,S,Pital queL(M) =L(G). Es decir, todo lenguaje regular es generado por una gramática regular.

Definimos aGcomo sigue:

Suponemos s.p.g. que no hayε-transiciones.

V =Q T = Σ S=q0

P se define como sigue:

I Sip∈δ(q,a)entonces agregamosq→apaP.

(73)

Lenguajes y gramáticas regulares

AF⇒ GR

Dado un AFM =hQ,Σ, δ,q0,Fiexiste una gramática regular

G=hV,T,S,Pital queL(M) =L(G). Es decir, todo lenguaje regular es generado por una gramática regular.

Definimos aGcomo sigue:

Suponemos s.p.g. que no hayε-transiciones.

V =Q T = Σ S=q0

P se define como sigue:

I Sip∈δ(q,a)entonces agregamosq→apaP.

(74)

Lenguajes y gramáticas regulares

AF⇒ GR

Dado un AFM =hQ,Σ, δ,q0,Fiexiste una gramática regular

G=hV,T,S,Pital queL(M) =L(G). Es decir, todo lenguaje regular es generado por una gramática regular.

Definimos aGcomo sigue:

Suponemos s.p.g. que no hayε-transiciones.

V =Q T = Σ S=q0

P se define como sigue:

I Sip∈δ(q,a)entonces agregamosq→apaP.

(75)

Lenguajes y gramáticas regulares

AF⇒ GR

Dado un AFM =hQ,Σ, δ,q0,Fiexiste una gramática regular

G=hV,T,S,Pital queL(M) =L(G). Es decir, todo lenguaje regular es generado por una gramática regular.

Definimos aGcomo sigue:

Suponemos s.p.g. que no hayε-transiciones.

V =Q T = Σ S=q0

P se define como sigue:

I Sip∈δ(q,a)entonces agregamosq→apaP.

(76)

Lenguajes y gramáticas regulares

GR⇒ AF

Dada una gramática regularG=hV,T,S,Piexiste un AF

M =hQ,Σ, δ,q0,Fital queL(M) =L(G). Es decir todo lenguaje

generado por una gramática regular es un lenguaje regular.

Definimos aM como sigue:

Suponemos s.p.g. queGes lineal derecha.

Q=V∪ {qF} Σ =T q0=S F ={qF}

δ se define como sigue:

(77)

Lenguajes y gramáticas regulares

GR⇒ AF

Dada una gramática regularG=hV,T,S,Piexiste un AF

M =hQ,Σ, δ,q0,Fital queL(M) =L(G). Es decir todo lenguaje

generado por una gramática regular es un lenguaje regular.

Definimos aM como sigue:

Suponemos s.p.g. queGes lineal derecha.

Q=V ∪ {qF} Σ =T q0=S F ={qF}

δ se define como sigue:

(78)

Lenguajes y gramáticas regulares

GR⇒ AF

Dada una gramática regularG=hV,T,S,Piexiste un AF

M =hQ,Σ, δ,q0,Fital queL(M) =L(G). Es decir todo lenguaje

generado por una gramática regular es un lenguaje regular.

Definimos aM como sigue:

Suponemos s.p.g. queGes lineal derecha.

Q=V ∪ {qF} Σ =T q0=S F ={qF}

δ se define como sigue:

(79)

Lenguajes y gramáticas regulares

GR⇒ AF

Dada una gramática regularG=hV,T,S,Piexiste un AF

M =hQ,Σ, δ,q0,Fital queL(M) =L(G). Es decir todo lenguaje

generado por una gramática regular es un lenguaje regular.

Definimos aM como sigue:

Suponemos s.p.g. queGes lineal derecha.

Q=V ∪ {qF} Σ =T q0=S F ={qF}

δ se define como sigue:

(80)

Lenguajes y gramáticas regulares

GR⇒ AF

Dada una gramática regularG=hV,T,S,Piexiste un AF

M =hQ,Σ, δ,q0,Fital queL(M) =L(G). Es decir todo lenguaje

generado por una gramática regular es un lenguaje regular.

Definimos aM como sigue:

Suponemos s.p.g. queGes lineal derecha.

Q=V ∪ {qF} Σ =T q0=S F ={qF}

δ se define como sigue:

I SiAaBPentoncesB∈δ(A,a).

(81)

Lenguajes y gramáticas regulares

GR⇒ AF

Dada una gramática regularG=hV,T,S,Piexiste un AF

M =hQ,Σ, δ,q0,Fital queL(M) =L(G). Es decir todo lenguaje

generado por una gramática regular es un lenguaje regular.

Definimos aM como sigue:

Suponemos s.p.g. queGes lineal derecha.

Q=V ∪ {qF} Σ =T q0=S F ={qF}

δ se define como sigue:

I SiAaBPentoncesB∈δ(A,a). I SiAaPentoncesqF ∈δ(A,a).

(82)

Lenguajes y gramáticas regulares

GR⇒ AF

Dada una gramática regularG=hV,T,S,Piexiste un AF

M =hQ,Σ, δ,q0,Fital queL(M) =L(G). Es decir todo lenguaje

generado por una gramática regular es un lenguaje regular.

Definimos aM como sigue:

Suponemos s.p.g. queGes lineal derecha.

Q=V ∪ {qF} Σ =T q0=S F ={qF}

δ se define como sigue:

(83)

Gramáticas libres de contexto

Definición

Una gramática es libre o independiente del contexto si todas sus producciones son de la forma

A→α

conA∈V, α∈(V ∪T)?.

Esta definición incluye a la reglaS →ε.

(84)

Gramáticas libres de contexto

Definición

Una gramática es libre o independiente del contexto si todas sus producciones son de la forma

A→α

conA∈V, α∈(V ∪T)?.

Esta definición incluye a la reglaS →ε.

(85)

Gramáticas libres de contexto

Definición

Una gramática es libre o independiente del contexto si todas sus producciones son de la forma

A→α

conA∈V, α∈(V ∪T)?.

Esta definición incluye a la reglaS →ε.

(86)

Gramáticas libres de contexto

Ejemplos

L=a?

S→aS|ε

L=a?b?

S → aS|bA|ε

A → bA|b|ε

L=0+1+

S → CU C → 0C|0

(87)

Gramáticas libres de contexto

Ejemplos

L=a?

S→aS|ε

L=a?b?

S → aS|bA|ε

A → bA|b|ε

L=0+1+

S → CU C → 0C|0

(88)

Gramáticas libres de contexto

Ejemplos

L=a?

S→aS|ε

L=a?b?

S → aS|bA|ε

A → bA|b|ε

L=0+1+

S → CU C → 0C|0

(89)

Gramáticas libres de contexto

Ejemplos

L={anbam |n,m≥1}=a+ba+

S → aS |aB B → bC C → aC |a

L={anbn|n∈N}que no es regular

S→aSb|ε

L={w ∈ {a,b}? |w =wR}que no es regular

(90)

Gramáticas libres de contexto

Ejemplos

L={anbam |n,m≥1}=a+ba+

S → aS |aB B → bC C → aC |a

L={anbn |n∈N}que no es regular

S→aSb|ε

L={w ∈ {a,b}? |w =wR}que no es regular

(91)

Gramáticas libres de contexto

Ejemplos

L={anbam |n,m≥1}=a+ba+

S → aS |aB B → bC C → aC |a

L={anbn |n∈N}que no es regular

S→aSb|ε

(92)

Derivaciones por la izquierda

GLC

Una derivaciónS→? w es una derivación por la izquierda si en cada

paso se reescribe la variable mas a la izquierda en la palabra.

En la gramática

S→aAs|a A→SbA|SS|ba

tenemos la siguiente derivación por la izquierda deaabbaa.

(93)

Derivaciones por la izquierda

GLC

Una derivaciónS→? w es una derivación por la izquierda si en cada

paso se reescribe la variable mas a la izquierda en la palabra. En la gramática

S→aAs|a A→SbA|SS|ba

tenemos la siguiente derivación por la izquierda deaabbaa.

(94)

Derivaciones por la izquierda

GLC

Una derivaciónS→? w es una derivación por la izquierda si en cada

paso se reescribe la variable mas a la izquierda en la palabra. En la gramática

S→aAs|a A→SbA|SS|ba

tenemos la siguiente derivación por la izquierda deaabbaa.

(95)

Derivaciones por la derecha

GLC

Una derivaciónS→? w es una derivación por la derecha si en cada

paso se reescribe la variable mas a la derecha en la palabra.

En la gramática

S→aAs|a A→SbA|SS|ba

tenemos la siguiente derivación por la derecha deaabbaa.

(96)

Derivaciones por la derecha

GLC

Una derivaciónS→? w es una derivación por la derecha si en cada

paso se reescribe la variable mas a la derecha en la palabra. En la gramática

S→aAs|a A→SbA|SS|ba

tenemos la siguiente derivación por la derecha deaabbaa.

(97)

Derivaciones por la derecha

GLC

Una derivaciónS→? w es una derivación por la derecha si en cada

paso se reescribe la variable mas a la derecha en la palabra. En la gramática

S→aAs|a A→SbA|SS|ba

tenemos la siguiente derivación por la derecha deaabbaa.

(98)

Árboles de derivación

GLC

Los árboles de derivación o árboles sintácticos son un mecanismo para representar las derivaciones de gramáticas libres de contexto.

En compiladores se utilizan para el análisis sintáctico de

programas fuente (parsing) y sirven de base para la generación de código.

(99)

Árboles de derivación

GLC

Los árboles de derivación o árboles sintácticos son un mecanismo para representar las derivaciones de gramáticas libres de contexto.

En compiladores se utilizan para el análisis sintáctico de

programas fuente (parsing) y sirven de base para la generación de código.

(100)

Árboles de derivación

GLC

Los árboles de derivación o árboles sintácticos son un mecanismo para representar las derivaciones de gramáticas libres de contexto.

En compiladores se utilizan para el análisis sintáctico de

programas fuente (parsing) y sirven de base para la generación de código.

(101)

Árboles de derivación

GLC

Puede haber mas de un árbol de derivación para una cadena.

Lo ideal es que cada cadena tenga sólo un árbol asociado, esto implica que el lenguaje no es ambiguo.

(102)

Árboles de derivación

GLC

Puede haber mas de un árbol de derivación para una cadena.

Lo ideal es que cada cadena tenga sólo un árbol asociado, esto implica que el lenguaje no es ambiguo.

(103)

Árboles de derivación

GLC

Puede haber mas de un árbol de derivación para una cadena.

Lo ideal es que cada cadena tenga sólo un árbol asociado, esto implica que el lenguaje no es ambiguo.

(104)

Construcción de árboles de derivación

GLC

Dada una gramática libre de contextoG=hV,T,S,Pi, un árbol de

derivación enGse construye como sigue:

La raiz contiene al símbolo inicialS.

Cada nodo interior contiene una variable

Cada hoja contiene un símbolo deV ∪T ∪ {ε}.

Si un nodo interior contiene una variableAentonces sus hijos

contienen símbolos (de izquierda a derecha)a1, . . . ,ansi y sólo si

A→a1a2. . .anestá enP.

(105)

Construcción de árboles de derivación

GLC

Dada una gramática libre de contextoG=hV,T,S,Pi, un árbol de

derivación enGse construye como sigue:

La raiz contiene al símbolo inicialS.

Cada nodo interior contiene una variable

Cada hoja contiene un símbolo deV ∪T ∪ {ε}.

Si un nodo interior contiene una variableAentonces sus hijos

contienen símbolos (de izquierda a derecha)a1, . . . ,an si y sólo si

A→a1a2. . .anestá enP.

(106)

Construcción de árboles de derivación

GLC

Dada una gramática libre de contextoG=hV,T,S,Pi, un árbol de

derivación enGse construye como sigue:

La raiz contiene al símbolo inicialS.

Cada nodo interior contiene una variable

Cada hoja contiene un símbolo deV ∪T ∪ {ε}.

Si un nodo interior contiene una variableAentonces sus hijos

contienen símbolos (de izquierda a derecha)a1, . . . ,an si y sólo si

A→a1a2. . .anestá enP.

(107)

Construcción de árboles de derivación

GLC

Dada una gramática libre de contextoG=hV,T,S,Pi, un árbol de

derivación enGse construye como sigue:

La raiz contiene al símbolo inicialS.

Cada nodo interior contiene una variable

Cada hoja contiene un símbolo deV ∪T ∪ {ε}.

Si un nodo interior contiene una variableAentonces sus hijos

contienen símbolos (de izquierda a derecha)a1, . . . ,an si y sólo si

A→a1a2. . .anestá enP.

(108)

Construcción de árboles de derivación

GLC

Dada una gramática libre de contextoG=hV,T,S,Pi, un árbol de

derivación enGse construye como sigue:

La raiz contiene al símbolo inicialS.

Cada nodo interior contiene una variable

Cada hoja contiene un símbolo deV ∪T ∪ {ε}.

Si un nodo interior contiene una variableAentonces sus hijos

contienen símbolos (de izquierda a derecha)a1, . . . ,an si y sólo si

A→a1a2. . .anestá enP.

(109)

Construcción de árboles de derivación

GLC

Dada una gramática libre de contextoG=hV,T,S,Pi, un árbol de

derivación enGse construye como sigue:

La raiz contiene al símbolo inicialS.

Cada nodo interior contiene una variable

Cada hoja contiene un símbolo deV ∪T ∪ {ε}.

Si un nodo interior contiene una variableAentonces sus hijos

contienen símbolos (de izquierda a derecha)a1, . . . ,an si y sólo si

A→a1a2. . .anestá enP.

(110)

Ambigüedad

GLC

Una gramática se diceambiguasi existe una palabraw con dos o

más árboles de derivación distintos.

En general una palabra puede tener mas de una derivación, pero un sólo árbol, en tal caso no hay ambigüedad.

Algunas veces se puede suprimir la ambigüedad directamente.

(111)

Ambigüedad

GLC

Una gramática se diceambiguasi existe una palabraw con dos o

más árboles de derivación distintos.

En general una palabra puede tener mas de una derivación, pero un sólo árbol, en tal caso no hay ambigüedad.

Algunas veces se puede suprimir la ambigüedad directamente.

(112)

Ambigüedad

GLC

Una gramática se diceambiguasi existe una palabraw con dos o

más árboles de derivación distintos.

En general una palabra puede tener mas de una derivación, pero un sólo árbol, en tal caso no hay ambigüedad.

Algunas veces se puede suprimir la ambigüedad directamente.

(113)

Ambigüedad

GLC

Una gramática se diceambiguasi existe una palabraw con dos o

más árboles de derivación distintos.

En general una palabra puede tener mas de una derivación, pero un sólo árbol, en tal caso no hay ambigüedad.

Algunas veces se puede suprimir la ambigüedad directamente.

Sin embargo no hay un algoritmo para remover ambigüedad.

(114)

Ambigüedad

GLC

Una gramática se diceambiguasi existe una palabraw con dos o

más árboles de derivación distintos.

En general una palabra puede tener mas de una derivación, pero un sólo árbol, en tal caso no hay ambigüedad.

Algunas veces se puede suprimir la ambigüedad directamente.

Sin embargo no hay un algoritmo para remover ambigüedad.

(115)

Ejemplos

Ambigüedad

S→AA A→aSa|a

La palabraa5tiene las siguientes derivaciones:

S→AA→aA→aaSa→aaAAa→aaaAa→aaaaa

S→AA→aSaA→aAAaA→aaAaA→aaaaA→aaaaa

(116)

Ejemplos

Ambigüedad

S→AA A→aSa|a

La palabraa5tiene las siguientes derivaciones:

S→AA→aA→aaSa→aaAAa→aaaAa→aaaaa

S→AA→aSaA→aAAaA→aaAaA→aaaaA→aaaaa

(117)

Ejemplos

Ambigüedad

S→AA A→aSa|a

La palabraa5tiene las siguientes derivaciones:

S→AA→aA→aaSa→aaAAa→aaaAa→aaaaa

S→AA→aSaA→aAAaA→aaAaA→aaaaA→aaaaa

(118)

Ejemplos

Ambigüedad

S→AA A→aSa|a

La palabraa5tiene las siguientes derivaciones:

S→AA→aA→aaSa→aaAAa→aaaAa→aaaaa

S→AA→aSaA→aAAaA→aaAaA→aaaaA→aaaaa

(119)

Lenguajes Ambiguos

Ambigüedad

Un lenguajeLes ambiguo si existe una gramática ambiguaGque

genera aL.

L={a2+3i |i≥0}es ambiguo.

Un lenguaje es inherentemente ambiguo si todas las gramáticas que lo generan son ambiguas.

(120)

Lenguajes Ambiguos

Ambigüedad

Un lenguajeLes ambiguo si existe una gramática ambiguaGque

genera aL.

L={a2+3i|i≥0}es ambiguo.

Un lenguaje es inherentemente ambiguo si todas las gramáticas que lo generan son ambiguas.

(121)

Lenguajes Ambiguos

Ambigüedad

Un lenguajeLes ambiguo si existe una gramática ambiguaGque

genera aL.

L={a2+3i|i≥0}es ambiguo.

Un lenguaje es inherentemente ambiguo si todas las gramáticas que lo generan son ambiguas.

(122)

Lenguajes Ambiguos

Ambigüedad

Un lenguajeLes ambiguo si existe una gramática ambiguaGque

genera aL.

L={a2+3i|i≥0}es ambiguo.

Un lenguaje es inherentemente ambiguo si todas las gramáticas que lo generan son ambiguas.

(123)

L

=

{

a

2+3i

|

i

0}

Lenguajes ambiguos

Les ambiguo por se generado por la gramática ambigua

S→AA A→aSa|a

Sin embargo este lenguaje también es generado por una gramática no ambigua:

S→aa|aaU U →aaaU |aaa

en este caso la derivación dea5es:

S→aaU →aaaaa

(124)

L

=

{

a

2+3i

|

i

0}

Lenguajes ambiguos

Les ambiguo por se generado por la gramática ambigua

S→AA A→aSa|a

Sin embargo este lenguaje también es generado por una gramática no ambigua:

S→aa|aaU U →aaaU |aaa

en este caso la derivación dea5es:

S→aaU →aaaaa

(125)

L

=

{

a

2+3i

|

i

0}

Lenguajes ambiguos

Les ambiguo por se generado por la gramática ambigua

S→AA A→aSa|a

Sin embargo este lenguaje también es generado por una gramática no ambigua:

S→aa|aaU U →aaaU |aaa

en este caso la derivación dea5es:

S→aaU →aaaaa

(126)

L

=

{

a

2+3i

|

i

0}

Lenguajes ambiguos

Les ambiguo por se generado por la gramática ambigua

S→AA A→aSa|a

Sin embargo este lenguaje también es generado por una gramática no ambigua:

S→aa|aaU U →aaaU |aaa

en este caso la derivación dea5es:

S→aaU →aaaaa

(127)

L

=

{

a

n

b

n

c

m

d

m

|

n

,

m

1} ∪ {

a

n

b

m

c

m

d

n

|

n

,

m

1}

Lenguajes inherentemente ambigüos

Les generado por la gramática:

S →AB|C A→aAb|ab B→cBd |cd C →aCd |aDd D→bDc |bc

La cadenaaabbccdd tiene dos derivaciones por la izquierda:

S→AB→aAbB →aabbB →aabbcBd →aabbccdd S→C →aCd →aaDdd →aabDcdd →aabbccdd

(128)

L

=

{

a

n

b

n

c

m

d

m

|

n

,

m

1} ∪ {

a

n

b

m

c

m

d

n

|

n

,

m

1}

Lenguajes inherentemente ambigüos

Les generado por la gramática:

S →AB|C A→aAb|ab B→cBd |cd C →aCd |aDd D→bDc |bc

La cadenaaabbccdd tiene dos derivaciones por la izquierda:

S→AB→aAbB →aabbB →aabbcBd →aabbccdd S→C →aCd →aaDdd →aabDcdd →aabbccdd

(129)

L

=

{

a

n

b

n

c

m

d

m

|

n

,

m

1} ∪ {

a

n

b

m

c

m

d

n

|

n

,

m

1}

Lenguajes inherentemente ambigüos

Les generado por la gramática:

S →AB|C A→aAb|ab B→cBd |cd C →aCd |aDd D→bDc |bc

La cadenaaabbccdd tiene dos derivaciones por la izquierda:

S→AB→aAbB →aabbB →aabbcBd →aabbccdd

S→C →aCd →aaDdd →aabDcdd →aabbccdd

(130)

L

=

{

a

n

b

n

c

m

d

m

|

n

,

m

1} ∪ {

a

n

b

m

c

m

d

n

|

n

,

m

1}

Lenguajes inherentemente ambigüos

Les generado por la gramática:

S →AB|C A→aAb|ab B→cBd |cd C →aCd |aDd D→bDc |bc

La cadenaaabbccdd tiene dos derivaciones por la izquierda:

S→AB→aAbB →aabbB →aabbcBd →aabbccdd S→C →aCd →aaDdd →aabDcdd →aabbccdd

(131)

L

=

{

a

n

b

n

c

m

d

m

|

n

,

m

1} ∪ {

a

n

b

m

c

m

d

n

|

n

,

m

1}

Lenguajes inherentemente ambigüos

Les generado por la gramática:

S →AB|C A→aAb|ab B→cBd |cd C →aCd |aDd D→bDc |bc

La cadenaaabbccdd tiene dos derivaciones por la izquierda:

S→AB→aAbB →aabbB →aabbcBd →aabbccdd S→C →aCd →aaDdd →aabDcdd →aabbccdd

Referencias

Documento similar

37 Peter Winch señala que la ambigüedad de la palabra “estructura”, tal como se aplica a las proposiciones elementales y a las no elementales, respectivamente, perturba la

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

- Resolución de 30 de agosto de 2018, de la dirección general de Formación Profesional y Enseñanzas de Régimen Especial, de la Conselleria de Educación, Investigación, Cultura

Frente a ello, destaca que el objeto es en realidad secundario respecto de lo que encontramos en el corazón mismo de nuestra experiencia primordial y sólo se constituye a partir

Existen diversas dificultades en el proceso de la traducción, entre las cuales se encuentra también la de la ambigüedad, la cual se puede presentar de diversas

Debido a la calidad y el legado de nuestra compañía, los cuales se reflejan en nuestros pianos, elegir un instrumento hecho por Steinway & Sons tiende a ser una decisión

Y aquí se forja una relación imprescindible para comprender los movimientos territoriales: “bajo todos los puntos de vista, los agenciamientos maquínicos efectúan la

Ahora ve:.. El ayudante de cocina ayudó a la reconocida cocinera con la presentación del plato.. Preparando la presentación del plato, el ayudante de cocina ayudó a la