GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3....

16
GRAMÁTICAS LIBRES DE CONTEXTO

Transcript of GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3....

Page 1: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

GRAMÁTICAS LIBRES DE CONTEXTO

Page 2: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Definición

Page 3: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)
Page 4: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Convenciones

Page 5: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Derivaciones

Page 6: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Definición Lenguaje Libre de Contexto

Page 7: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Ejemplo

Page 8: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Tipos de derivación

Page 9: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)
Page 10: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Ejercicio• Sea G1 = < Vn1, Vt1,P1, exp> una GLC. Demuestre que

G1 es ambigua.

Page 11: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Solución

• Podemos construir más de una derivación por la izq para “5-8*2”.

Page 12: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Ambigüedad• La ambigüedad significa que una expresión del lenguaje

puede tener más de una interpretación, lo cual no esta permitido.

• En el ejemplo, la ambigüedad está asociada con los operadores “*” y “-”, por lo que se debe establecer su asociatividad y precedencia para evitar la ambigüedad.

Page 13: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Ejercicios

Page 14: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Ejercicios• Construya una GLC que genere cada uno de los

siguientes lenguajes:1.Listas de dígitos separados por comas.2.Cadenas que representen números en punto flotante al

estilo de Pascal o C.3.Identificadores (i.e. secuencias de letras ó dígitos que

incian siempre por una letra) en lenguaje tipo C o Pascal.4.Palabras palíndromas (que se leen de igual forma en

ambos sentidos) sobre el alfabeto {a,b}.5.El conjunto de todas las palabras sobre el alfabeto {a,b}

que tienen 2 veces más a’s que b’s.6.Números impares en binario.

Page 15: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Ejercicio• Obtener la gramática que representa al lenguaje {anb2n|

n>=0}

Page 16: GRAMÁTICAS LIBRES DE CONTEXTOmtovar.cs.buap.mx/doc/LFAV/GLC.pdf · estilo de Pascal o C. 3. Identificadores (i.e. secuencias de letras ó dígitos que incian siempre por una letra)

Solución• S→aSbb | abb | Ɛ