14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14:...

18
Clase 14: Gramáticas libres de contexto 1 M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom [email protected]

Transcript of 14 Gramáticas libres de contexto - Sitio Web Docente del ...Teoría computacional Clase 14:...

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

Clase 14: Gramáticas libres de contexto

1M. en C. Edgardo Adrián Franco Martínez

http://computacion.cs.cinvestav.mx/~efranco@efranco_escom

[email protected]

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

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

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

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

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

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

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

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

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

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

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

• 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

• 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

• 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

• 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

• 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

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

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