Sunteți pe pagina 1din 16

El Problema

Conceptos
Ambigedad

La Ambigedad en el Parsing
Definicin y Ejemplos

Universidad de Cantabria

Dificultades

El Problema
Conceptos
Ambigedad

Outline

El Problema

Conceptos

Ambigedad

Dificultades

El Problema
Conceptos
Ambigedad

El Problema

En nuestra busqueda por encontrar la estructura exploraremos


como elegir una derivacin entre varias opciones. No solo
queremos que la derivacin sea nica por sus propiedades,
queremos que refleje algo del rbol de derivacin.

Dificultades

El Problema
Conceptos
Ambigedad

El Problema

Ntese que hay dos elementos indeterministas, para dar la


solucin al problema de palabra:
La produccin que elegimos.
La eleccin de sobre qu variable actuamos.

Dificultades

El Problema
Conceptos
Ambigedad

El Problema

La idea de introducir derivaciones ms a la izquierda o ms a


la derecha consiste en tratar de reducir el ingrediente
indeterminstico a la hora de seleccionar qu variable es la
variable sobre la que vamos a actuar con nuestras
producciones.

Dificultades

El Problema
Conceptos
Ambigedad

Derivaciones a la Izquierda y la Derecha


Definicin (Derivaciones Leftmost)
Sea G = (V , , Q0 , P) una gramtica libre de contexto. Sean
c, c 0 (V ) dos formas sentenciales.
Diremos que c 0 se obtiene mediante derivacin ms a la
izquierda (o leftmost) de c, si existen
, A V , (V ) , y existe una produccin A 7 ,
con (V ) tales que
c = A, c 0 = .
0
Denotaremos mediante c G
lm c .

Dificultades

El Problema
Conceptos
Ambigedad

Derivaciones a la Izquierda y la Derecha


Definicin (Derivacin Rightmost)
Sea G = (V , , Q0 , P) una gramtica libre de contexto. Sean
c, c 0 (V ) dos formas sentenciales.
Diremos que c 0 se obtiene mediante derivacin ms a la
derecha (o rightmost) de c, si existen
(V ) , A V , , y existe una produccin A 7 ,
con (V ) tales que
c = A, c 0 = .
0
Denotaremos mediante c G
rm c .

Dificultades

El Problema
Conceptos
Ambigedad

Observaciones

Usualmente, y si no hay confusin, omitiremos el super-ndice


G.
Las derivaciones a la izquierda suelen ser las ms naturales,
pero las derivaciones ms a la derecha tienen ms interes
prctico.

Dificultades

El Problema
Conceptos
Ambigedad

Cadenas de Derivaciones

Definicin
Diremos que c 0 es deducible de c mediante derivaciones ms a
0
la izquierda (y lo denotaremos mediante c `G
lm c ) si existe una
cadena finita de derivaciones ms a la izquierda que va de c a
c 0 . Esto es, si existen:
G
G
0
c = c0 G
lm c1 lm ck 1 lm ck = c .

Dificultades

El Problema
Conceptos
Ambigedad

Cadenas de Derivaciones

Definicin
Diremos que c 0 es deducible de c mediante derivaciones ms a
0
la derecha (y lo denotaremos mediante c `G
rm c ) si existe una
cadena finita de derivaciones ms a la derecha que va de c a
c 0 . Esto es, si existen:
G
G
0
c = c0 G
rm c1 rm ck 1 rm ck = c .

Dificultades

El Problema
Conceptos
Ambigedad

Ejemplos
Ejemplo
Tomemos la gramtica cuyas producciones son:
P := {Q0 7 AB | CA | AQ0 | 0,
A 7 BA | 0A0 | 1, B 7 Q0 A, C 7 1}.
Una cadena de derivaciones leftmost (ms la izquierda) sera
la siguiente:
Q0 AB CAB 1AB 11B 11Q0 A 110A 1101.
Una cadena de derivaciones rightmost (ms a la derecha)
sera la siguiente:
Q0 AB AQ0 A AQ0 1 A01 0A001 01001.
Dificultades

El Problema
Conceptos
Ambigedad

Grmaticas Ambiguas

Hemos dicho que la informacin de un programa esta


contenida en la estructura. Qu pasa si una palabra en el
lenguaje tiene ms de una estructura?

Dificultades

El Problema
Conceptos
Ambigedad

Grmaticas Ambiguas

Definicin (Gramticas Ambiguas)


Una gramtica se dice ambigua si existe una forma sentencial
(V ) alcanzable desde el smbolo inicial (i.e Q0 `G )
tal que existen al menos dos computaciones (derivaciones)
ms a la izquierda (o ms a la derecha) distintas que permiten
generar .

Dificultades

El Problema
Conceptos
Ambigedad

Ejemplo
Ejemplo
Tomemos la gramtica P := {E 7 E + E | E E | a}. Ahora
disponemos de dos cadenas de derivacin para a + a a
distintas:
E lm E +E lm a+E lm a+E E lm a+aE lm a+aa.
Y tambin
E lm EE lm E+EE lm a+EE lm a+aE lm a+aa.
Por lo que la anterior gramtica es ambigua.

Dificultades

El Problema
Conceptos
Ambigedad

La Ambiguedad es Indecidible

Teorema
Decidir si una gramtica libre de contexto es ambigua es
indecidible (i.e. no existe algoritmo que permita decidir la
cualidad de ser ambigua).

Dificultades

El Problema
Conceptos
Ambigedad

Observaciones

Hay muchas gramticas que se generan por medio de


mquinas (serialization)
Hay lenguajes que solo admiten gramticas ambiguas.
Hay tcnicas para eliminar algunas causas de la
ambiguedad.

Dificultades

S-ar putea să vă placă și