14 gramáticas libres de contexto - sitio web docente del ...teoría computacional clase 14:...
TRANSCRIPT
![Page 1: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/1.jpg)
Clase 14: Gramáticas libres de contexto
1M. en C. Edgardo Adrián Franco Martínez
http://computacion.cs.cinvestav.mx/~efranco@efranco_escom
![Page 2: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/2.jpg)
Contenido• Gramáticas libres de contexto
• Propiedades de los lenguajes libres decontexto
• Otros lenguajes libres de contexto
• BNF (Backus-Naur Form)
• Ejemplo
• Árbol de derivación
2
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 3: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/3.jpg)
Las gramáticas de tipo 2 o gramáticas
independientes del contexto, son las que generan
los lenguajes libres o independientes del contexto.
Los lenguajes libres del contexto son aquellos quepueden ser reconocidos por un autómata de pila
determinístico o no determinístico.
3
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 4: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/4.jpg)
4
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Una gramática libre de contexto (GLC), describe unlenguaje libre de contexto.
• Son útiles para describir bloques anidados en
lenguajes de programación ya que describen su
sintaxis.
• Son llamadas así porque el elemento no terminal
del lado derecho se puede sustituir sin importar el
contexto en que este.
![Page 5: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/5.jpg)
5
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Su característica es que piden que solamente existaun no terminal del lado izquierdo de la
producción.
![Page 6: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/6.jpg)
6
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Una simple gramática libre de contexto es
S → aSb | ε
• Esta gramática genera el lenguaje no regular�����: � � 0
![Page 7: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/7.jpg)
7
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Gramática libre de contexto para expresionesenteras algebraicas sintácticamente correctas sobrelas variables x, y y z:
S → x | y | z | S + S | S - S | S *S | S/S | (S)
• cadena (x + y) *x - z *y / (x + x) valida
![Page 8: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/8.jpg)
8
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Lenguaje consistente en todas las cadenas que sepueden formar con las letras a y b, habiendo unnúmero diferente de una que de otra, sería:
S → U | V
U → TaU | TaT
V → TbV | TbT
T → aTbT | bTaT | ε
• T genera todas las cadenas con la misma cantidad de
letras a que b, U genera todas las cadenas con más
letras a, y V todas las cadenas con más letras b.
![Page 9: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/9.jpg)
9
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• Gramática libre de contexto para el lenguaje
�������: � � 0,� � 0
S → aSc | B
B → bBc | ε
![Page 10: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/10.jpg)
10
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
• La gramática G = ({E,T,F}, {a,+,*,(,)}, S, P)
P:
E → E + T | T
T → T * F | F
F → ( E ) | a
![Page 11: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/11.jpg)
11
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 12: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/12.jpg)
• Las gramáticas libres del contexto seescriben, frecuentemente, utilizando unanotación conocida como BNF (Backus-Naur Form).
• BNF es la técnica más común para definir lasintaxis de los lenguajes de programación.
12
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 13: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/13.jpg)
• El inverso de un lenguaje libre de contexto estambién libre de contexto, pero el complemento notiene por que serlo.
• La unión y concatenación de dos lenguajes libres decontexto es también libre de contexto. Laintersección no tiene por que serlo.
• Los lenguajes regulares son libres de contextoporque pueden ser descritos mediante unagramática de libre contexto. 13
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 14: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/14.jpg)
• La intersección de un lenguaje libre de contexto y unlenguaje regular es siempre libre de contexto.
• Para demostrar que un lenguaje dado no es libre decontexto, se puede emplear el Lema del bombeopara lenguajes libres de contexto.
• El problema de determinar si una gramática sensibleal contexto describe un lenguaje libre del contextoes indecidible.
14
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 15: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/15.jpg)
• La siguiente es una definición BNF del lenguaje queconsiste de cadenas de paréntesis anidados:
<cadena_par>::=<cadena_par><paréntesis>|<paréntesis>
<paréntesis> ::= (<cadena_par> ) |( )
• Por ejemplo las cadenas ( ) ( ( ) ) y ( ) ( ) ( ) son cadenasválidas. En cambio las cadenas ( () y ( ) ) ) no pertenecen allenguaje.
15
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 16: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/16.jpg)
• En esta notación se deben seguir lassiguientes convenciones:• Los no terminales se escriben entre paréntesis angulares
<>
• Los terminales se representan con cadenas de caracteressin paréntesis angulares
• El lado izquierdo de cada regla debe tener únicamente un no terminal (ya que es una gramática libre del contexto)
• El símbolo ::=, que se lee “se define como” o “se reescribe como”, se utiliza en lugar de
• Varias producciones del tipo• <A> ::= <B1>
• <A> ::= <B2> .. .
• <A> ::= <Bn>
• Se pueden escribir como <A> ::= <B1> | <B2> | ...| <Bn>16
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
![Page 17: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/17.jpg)
La siguiente definición BNF describe la sintaxis(simplificada) de una sentencia de asignación de unlenguaje tipo Pascal:
17
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
<sent_asig> ::= <var> := <expresion><expresion> ::= <expresion> + <termino>| <expresion> - <termino> |<termino><termino> ::= <termino> * <factor>|<termino> / <factor>|<factor><factor> ::= ( <expresion> )|<var> | <num><var> ::= A|B|C|D|... |Z<num> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
![Page 18: 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14: Gramáticas libres de contexto Prof. Edgardo Adrián Franco Martínez Las gramáticas de](https://reader035.vdocuments.mx/reader035/viewer/2022071510/612ee7f81ecc515869431b65/html5/thumbnails/18.jpg)
18
Teo
ría
com
pu
taci
on
alC
lase
14
: G
ram
átic
as li
bre
s d
e co
nte
xto
Pro
f. Ed
gard
o A
dri
án F
ran
co M
artí
nez
<sent_asig> ::= <var> := <expresion><expresion> ::= <expresion> + <termino>| <expresion> - <termino> |<termino><termino> ::= <termino> * <factor>|<termino> / <factor>|<factor><factor> ::= ( <expresion> )|<var> | <num><var> ::= A|B|C|D|... |Z<num> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
A := A + B