Top Banner
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]
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

May 28, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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

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