presentación de powerpoint · por medio de un metalenguaje. •p.g. bnf (backus naur form) o ebnf...

22

Upload: others

Post on 26-Mar-2020

8 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr
Page 2: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Contenido • Gramática

• Definición formal

• Ejemplos

• Definiciones

• Lenguaje • Definición formal

• Importancia de las gramáticas

• Ejemplo: Palíndroma (PAL) • Definición recursiva de PAL

• Gramática que define a PAL

• Observaciones del remplazo

• Explicación de los elementos de una gramática

• Lenguaje generado por una gramática (Derivaciones)

• Ejemplos

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

2

Page 3: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Gramática

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• La Gramática es el estudio de las reglas y principios que

regulan el uso de las lenguas y la organización de las

palabras dentro de una oración. También se denomina así al

conjunto de reglas y principios que gobiernan el uso de un

lenguaje muy determinado; así, cada lenguaje tiene su

propia gramática.

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

3

Page 4: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Gramática (Definición formal)

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• La gramática es un ente formal para especificar, de una manera finita, el conjunto de cadenas de símbolos que constituyen un lenguaje.

• Una gramática es una cuádrupla :

G = ( VT , VN , S , P )

donde :

• VT = {conjunto finito de símbolos terminales}

• VN = {conjunto finito de símbolos no terminales}

• S es el símbolo inicial y pertenece a VN.

• P = {conjunto de producciones o de reglas de derivación}

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

4

Page 5: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Gramática (Definiciones)

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• Todas las cadenas del lenguaje definido por la gramática

están formadas con símbolos del vocabulario terminal

VT.

• El vocabulario terminal se define por enumeración de los símbolos

terminales.

• El vocabulario no terminal VN es el conjunto de

símbolos introducidos como elementos auxiliares para

la definición de la gramática, y que no figuran en las

sentencias del lenguaje.

• El vocabulario no terminal se define por enumeración de los

símbolos no terminales.

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

5

Page 6: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Gramática (Definiciones)

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• La intersección entre el vocabulario terminal y no terminal

es el conjunto vacío:

{VN} ∩ {VT} = {Ø}

• La unión entre el vocabulario terminal y no terminal es el

vocabulario :

{VN} U {VT} = {V}

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

6

Page 7: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Gramática (Definiciones)

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• En ocasiones es importante distinguir si un determinado

vocabulario incluye o no la cadena vacía, indicándose con

superíndice + o superíndice *.

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

7

Page 8: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Gramática (Definiciones)

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• Las producciones P son las reglas que se aplican desde el

símbolo inicial para obtener las cadenas del lenguaje.

• El conjunto de producciones P se define por medio de la

enumeración de las distintas producciones, en forma de reglas o

por medio de un metalenguaje.

• p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form).

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

8

Page 9: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Ejemplos

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

Ejemplo 1

Ejemplo 2

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

9

Page 10: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Lenguaje

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• Se puede definir como un conjunto de palabras de un determinado alfabeto.

• Alguien puede pensar que los lenguajes se pueden definir por enumeración de las cadenas que pertenecen a dicho lenguaje, pero este método además de ineficiente, es en muchos casos imposible (habitualmente un lenguaje tiene un numero infinito de cadenas).

• Así los lenguajes se definen por las propiedades que cumplen las cadenas del lenguaje.

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

10

Page 11: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Lenguaje (Definición formal)

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)

• El lenguaje L(G) generado por una gramática G es el

conjunto de todas las sentencias que puede generar G. Es

decir expresado formalmente :

• Una sentencia pertenece a L(G) si :

• Está compuesta de símbolos terminales

• La sentencia puede derivarse del símbolo inicial S aplicando las

reglas de producción de la gramática.

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

11

Page 12: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Importancia de las gramáticas

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 12

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

12

Page 13: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Ejemplo: Palíndroma (PAL)

• Un palíndroma (PAL) es una palabra w que cumple w = wR, donde

wR es la misma palabra w sólo que escrita en orden inverso.

• Sea PAL = {w (a + b)*| w = wR}, es decir, PAL es el lenguaje que

consiste de las palabras palíndromas sobre {a, b}.

• Ejemplos de palíndromas sobre {a, b}

• a, aba, aabbaa, babaabab.

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 13

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

13

Page 14: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Definición recursiva de PAL

1. , a, b PAL

2. Si S PAL entonces aSa y bSb PAL

3. Ninguna cadena pertenece a PAL a menos que pueda ser obtenida utilizando las reglas 1 y 2 un número finito de veces. Podemos considerar a S como una variable que representa genéricamente un elemento de PAL cuyo valor queremos calcular. Informalmente, las reglas que definen PAL pueden reescribirse como:

• S puede tomar el valor , a o b.

• S puede tomar el valor aSa o bSb, donde la nueva S debe ser calculada. Y si en lugar de escribir “puede tomar el valor” escribimos el símbolo , entonces escribiríamos …

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 14

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

14

Page 15: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Gramática que define PAL

1. S , S a, S b.

Abreviando: S | a | b.

2. S aSa, S bSb.

Abreviando: S aSa | bSb.

3. Cualquier palíndroma sobre {a, b} debe poder ser

obtenido aplicando un número finito de veces las

reglas de reemplazo 1 y 2.

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 15

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

15

Page 16: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Ejemplo: palabras que no son

palíndromas • S A

• A aBb | bBa

• B aB | bB |

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 16

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

16

Page 17: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Observaciones del remplazo

• Por lo general las reglas se escriben en lugar de (,).

• Aplicar la regla a una palabra ab produce la palabra ab, por lo que las reglas pueden ser vistas como reglas de remplazo.

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 17

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

17

Page 18: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Explicación de los elementos de una

gramática

• Símbolos terminales: son elementos del alfabeto que no se pueden transformar, por eso se llaman terminales. Normalmente se denotan por letras minúsculas.

• Variables o símbolos no terminales: son elementos auxiliares que permiten poner restricciones sintácticas a un lenguaje. Las variables sí se pueden transformar, utilizando las reglas, en una cadena de variables y/o terminales. Por lo general se denotan por letras mayúsculas o por la notación <variable>.

• Reglas: permiten reemplazar variables para generar oraciones válidas de un lenguaje. Puede haber varias reglas para una misma variable, en algunos casos, las distintas opciones se colocan en una sola regla con los distintos reemplazos separados por “|”. P.g. | | abrevia las tres reglas

• Símbolo inicial: es el símbolo a partir del cual se generan todas las palabras válidas.

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 18

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

18

Page 19: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Lenguaje generado por una gramática

• Definición: Decimos que la cadena w1 deriva en un paso a la cadena w2 (w1 G w2) si y solo si existen cadenas x, y V * tales que w1 = xuy y w2 = xvy y además existe una regla u v en P. • Se acostumbra omitir el subíndice que indica la gramática G.

• Definición: una cadena w V * es derivable a partir de la gramática G si y solo si existe una secuencia de derivación iniciando en el símbolo inicial y terminando en la cadena w: S = w1 w2 w3 wn = w.

• Escribimos si deriva a en 0 o más pasos.

• Definición: el lenguaje generado por una gramática G, L(G), es igual al conjunto de las palabras en VT derivables a partir de G. • Una gramática describe las reglas sintácticas del lenguaje. Si una palabra no

sigue las reglas, entonces no pertenecen al lenguaje generado por la gramática.

G

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 19

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

19

Page 20: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Ejemplo

• G = ( VT , VN , S , P ) • VN = {S, A, B}

• VT = {a, b, c}

• P: S AccA A BA | B a | b | c

w1 = abcc L(G) y w2 = acb L(G)

Cadena Regla Derivación

S S AccA S AccA

AccA A BA BAccA

BAccA B a aAccA

aAccA A BA aBAccA

aBAccA B b abAccA

abAccA A abccA

abccA A abcc

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 20

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

20

Page 21: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Derivaciones

• Derivación por la izquierda: las reglas de reemplazo son aplicadas a la primera variable de izquierda a derecha.

• Derivación por la derecha: las reglas de reemplazo son aplicadas a la última variable de izquierda a derecha.

• P.g:

G = (VN,VT, S, P) VN= {S, A}

VT = {a, b}

P: S AA A AAA | bA | Ab | a

• En esta gramática existen, por lo menos cuatro derivaciones de la palabra ababaa.

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 21

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

21

Page 22: Presentación de PowerPoint · por medio de un metalenguaje. •p.g. BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form). 13 Lenguajes y gramáticas I Compiladores - Profr

Derivaciones de ababaa

aA AAAA Aa aA

aAAA aAAA AAAa aAAA

abAAA abAAA AAbAa aAAa

abaAA abaAA AAbaa abAAa

ababAA ababAA AbAbaa abAbAa

ababaA ababaA Ababaa ababAa

ababaa ababaa ababaa ababaa

S AA S AA S AA S AA

Compiladores (Lenguajes y gramáticas - Edgardo A. Franco) 22

13 Lenguajes y gramáticas I Compiladores - Profr. Edgardo Adrián Franco Martínez

22