Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Gramáticas Sensibles al Contexto y
Lenguajes Sensibles al Contexto
Ciencias de la Computación I
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Gramáticas Formales
Una gramática formal es una cuadrupla G = <N, T, P, S>
N = conjunto finito de símbolos no terminales
T = conjunto finito de símbolos terminales
S = símbolo distinguido o axioma S
∉
∉
∉
∉
(N∪
∪
∪
∪
T)P = conjunto finito de reglas de producción(permiten generar cadenas a partir de S)
De acuerdo a formato de reglas se pueden definir 4 tipos de gramáticas y sus correspondientes lenguajes
N
∩
∩
∩
∩
T =∅
∅
∅
∅
α → β
α
=
ϕ
A
ρ
A
∈
N
∪
{S}
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Gramáticas Sensibles al Contexto (GSC) (Tipo 1)
• Generan los lenguajes sensibles al contexto (reconocidos por ALA)
T = conjunto finito de símbolos terminales S = símbolo distinguido o axioma S
∉
∉
∉
∉
(N∪
∪
∪
∪
T) P = conjunto finito de reglas de producción N = conjunto finito de símbolos no terminales • Se definen como una cuadrupla G = <N, T, P, S>γγγγ
A
β
→
→
→
→
γγγγ
w
β
A
∈
∈
∈
∈
N
∪
∪
∪
∪
{S}
γγγγ
,
β
∈
∈
∈
∈
(N
∪
∪
∪
∪
T)*
w
∈
∈
∈
∈
(N
∪
∪
∪
∪
T)* - {
εεεε
}
S
→
→
→
→ εεεε
Se puede incluir para generar la cadena vacía
N
∩
∩
∩
∩
T =∅
∅
∅
∅
Generar
S
→
A
A
→
aABC
A
→
aBC
L={a
nb
nc
n/n>0}
aB
→
ab
bB
→
bb
bC
→
bc
cC
→
cc
Lenguaje Sensible al Contexto
Ordenar
Reemplazar
con contexto
G=<{A, B, C},{a, b, c},P, S>
Gramáticas Sensibles al Contexto (Tipo 1)
Ejemplo:
CB →BC
Ejemplo de Derivación S⇒
A ⇒
aABC⇒
aaABCBC ⇒
aaaBCBCBC ⇒
aaaBBCCBC⇒
aaaBBCBCC⇒
aaaBBBCCC⇒
aaabBBCCC⇒
aaabbBCCC⇒
aaabbbCCC⇒
aaabbbcCC⇒
aaabbbccC⇒
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Generar
S
→
A
A
→
aABC
A
→
aBC
L={a
nb
nc
n/n>0}
aB
→
ab
bB
→
bb
bC
→
bc
cC
→
cc
Lenguaje Sensible al Contexto
Ordenar
Reemplazar
con contexto
G=<{A, B, C},{a, b, c},P, S>
Gramáticas Sensibles al Contexto (Tipo 1)
Ejemplo:
CB →BC
Ejemplo de derivación S ⇒
A ⇒
Ejemplo de derivación S ⇒
A ⇒
aABC ⇒
Ejemplo de derivación S ⇒
A ⇒
aABC ⇒
aaABCBC⇒
Ejemplo de derivación S ⇒
A ⇒
aABC ⇒
aaABCBC⇒
aaaBCBCBC⇒
Ejemplo de derivación S ⇒
A ⇒
aABC ⇒
aaABCBC⇒
aaaBCBCBC⇒
aaabCBCBC ⇒
Ejemplo de derivación S ⇒
A ⇒
aABC ⇒
aaABCBC⇒
aaaBCBCBC⇒
aaabCBCBC ⇒
aaabcBCBC (no se puede llegar de ninguna manera a reemplazar todos los símbolos
no terminales por símbolos terminales ⇒G no genera cadenas incorrectas)
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Sea G = <{A, B, C}, {a, b, c}, P, S> donde P = {S→A,
A→aABC, CB→BC (*)
A→abC,
bB→bb,
bC→bc,
cC→cc }
A
Gramáticas Sensibles al Contexto (Tipo 1)
Ejemplo:
Aclaración:
CB→BC no respeta el formato de reglas de Tipo 1
Formato reglas de tipo 1
γγγγA →→→→ γγγγ ωωωω A ∈∈∈∈N ∪∪∪∪{S} γγγγ, ∈∈∈∈(N ∪∪∪∪T)* w ∈∈∈∈(N ∪∪∪∪T)* - {εεεε}
ω
β
A
A
A
γ γ ω
A
ω ω
A
γ
Se utiliza para “resumir” el efecto de las siguientes 3 reglas: AB →XB
XB →XA XA →BA
donde los símbolos A, B, X ∈N
A
γ γ ω
A
γ γ ω
γ=ε y β=ε
γ=ε y β=ε
γ=ε y β=ε
β=ε
β=ε
β=ε
(*) En la práctica se puede usar esta regla aclarando que NO es de Tipo 1
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Gramáticas Sensibles al Contexto (Tipo 1)
• Las reglas de producción indican cómo reemplazar un no terminal o el símbolo distinguido teniendo en cuenta el contexto en el que se encuentra
Ejemplo: G sensible al contexto
Sea G = <{A, B, C}, {a, b, c}, P, S> donde
P = {S→A, A→aABC, A→abC, CB→BC, bB→bb, bC→bc, cC→cc}
Del lado izquierdo puede haber símbolos terminales y/o no terminales (también puede aparecer el símbolo distinguido)
Se reemplaza el no terminal y su contexto por la cadena del lado derecho de la regla de producción (manteniendo el contexto)
S
⇒
A
⇒
a
A
BC
⇒
aab
CB
C
⇒
aa
bB
CC
⇒
aab
bC
C
⇒
aabb
cC
⇒
aabbcc
Gramáticas Sensibles al Contexto (Tipo 1)
Derivación:
Dadas dos cadenas ω1, ω2 y una gramática sensible al contexto G = <N, T, P, S> se dice queω1deriva aω2siω2puede obtenerse a partir de
ω1por aplicación de reglas de G.
Derivación inmediata:
La cadena ω2se obtiene de la cadena ω1en un paso usando las reglas de P
2) ω1 ⇒ω2
γ αBβψ ⇒γ αωβψ α, β, γ, ψ ∈(N ∪T)*, B ∈N ∪{S},
αBβ → αωβ∈P y ω ∈(N ∪T)* - { ε} 1) Cuando ω1= S y ω2= ε y S → ε ∈P
ω1⇒ω2 sí y sólo sí
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Gramáticas Sensibles al Contexto (Tipo 1)
Derivación:
La cadena
α
αα
α
2se obtiene de la cadenaα
αα
α
1en cero o más pasos usando las reglas de P.Si existen
αα
α
α
1,
αα
α
α
2, …,
α
αα
α
n ∈(N ∪T)* n ≥1 y*
αααα
1⇒
αααα
2⇒
…
⇒
αααα
ndecimos que
αααα
1⇒
αααα
n(clausura reflexiva y transitiva de
⇒
)
Lenguaje generado por una gramática sensible al contexto G = <N, T, P, S>:
*
L(G) = { x / x
∈
T* y S
⇒
x }
Es decir, una cadena ∈L(G) si:
1) La cadena está formada por símbolos terminales únicamente 2) La cadena puede ser derivada a partir de S
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Ejemplo 2
L={a
nb
nc
nd
n/n>0}
P:{ S→A, A→aABCD, A→aBCD, DB →BD, CB →BC, DC →CD, aB →ab, bB →bb, bC →bc, cC →cc, cD →cd, dD →dd }
Lenguaje Sensible al Contexto
G=<{A,B,C,D},{a,b,c,d},P,S>
Derivación S⇒
A ⇒
aABCD⇒
aaABCDBCD ⇒
aaaBCDBCDBCD ⇒
aaaBCBDCDBCD ⇒
aaaBCBCDDBCD ⇒
aaaBCBCDBDCD ⇒
aaaBCBCDBCDD ⇒
aaaBBCCDBCDD ⇒
….
aaaBBBCCCDDD ⇒
….
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Ejemplo 3
L={a
ng
ih
ic
nd
n/ n, i 0}
P:{S
→
A,
A
→
aACD,
A
→
B,
B
→
gBh,
B
→
gh,
DC
→
CD,
hC
→
hc,
cC
→
cC,
cD
→
cd,
dD
→
dd,
A
→
acD, si i=0
S
→ ε
} si n=i=0
Lenguaje Sensible al Contexto
G=<{A,B,C,D},{a,g,h,c,d},P,S>
Derivación S⇒
A ⇒
B⇒
gBh ⇒
gghh Derivación
S⇒
A ⇒
aACD⇒
aaACDCD ⇒
aaBCDCD ⇒
aagBhCDCD ⇒
aagghhCDCD ⇒
aagghhCCDD ⇒
… aagghhccdd
Derivación S⇒
A ⇒
aACD⇒
aacDCD ⇒
aacCDD ⇒
aaccDD ⇒
aaccdD⇒
aaccdd
Ejemplo 4
L = {a
nc
ib
nd
i/ n, i 0}
P: {S→A, A→aAB, A→H, H→cHD, H→cD, DB →BD, cB →cb, bB →bb, bD →bd, dD →dd,
A →ab, si i=0 cD →cd, si n=0 S → ε} si n=i=0
Lenguaje Sensible al Contexto
G=<{A,B,H,D},{a,c,d,b},P,S>
Derivación S⇒A ⇒
aAB⇒
aaABB ⇒
aaHBB ⇒
aacHDBB ⇒
aaccHDDBB ⇒
aacccDDDBB ⇒
…
aacccBBDDD ⇒
…
aacccbbddd
Derivación S⇒
A ⇒
aAB⇒
aabB⇒
aabb
Derivación S ⇒
A ⇒
H⇒
cHD ⇒
ccDD ⇒
ccdD⇒
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Lenguajes Máquinas Gramáticas Equiv.
Det. y No det
R E G U L A R E S (TIPO 3)
Autómata Finito Determinístico
AFD = <E, A, δ, e0, F>
E: conjunto finito de estados
A: alfabeto de entrada
δδδδ: función de transición
δδδδ: E x A →→→→E
e0: estado inicial; e0 ∈∈∈∈E F: conjunto de estados finales;
F ⊆⊆⊆⊆E
Regulares o de Tipo 3
G = <N, T, P, S>
Formato de reglas de Tipo 3: - Lineales a derecha
A→aB A∈N∪{S}
A→a B∈N
S→ ε a∈T - Lineales a izquierda
A→Ba A∈N∪{S}
A→a B∈N
S→ ε a∈T
SI
Jerarquía de Chomsky
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Lenguajes Máquinas Gramáticas EQ. DET.
y NO DET
L I B R E S D E L C O N T E X T O (TIPO 2)
Autómata de Pila Determinístico o No Determinístico
AP = <E,A,P,δ,e0,Z0, F>
E: conjunto finito de estados
A:alfabeto de entrada
P: alfabeto de la Pila; P∩A=∅ δδδδ:función de transición
δ:E x (A∪{ε}) xP→E xP*
(determinístico)
δ:E x (A∪{ε}) xP→Pf(E xP*)
(no determinístico)
(Pfdenota subconjuntos finitos de E xP*)
e0: estado inicial; e0∈E
Z0:símbolo distinguido; Z0∈P
F: conjunto de estados finales; F⊆E.
Libres del Contexto o de Tipo 2
G = <N, T, P, S>
Formato reglas de Tipo 2:
A
→ ω
donde
A∈N∪{S};
ω ∈ (N∪T)
*
- {ε}Se puede incluir
S
→ ε
NO
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Lenguajes Máquinas Gramáticas EQ. DET. y NO DET
S E N S I B L E S A L C O N T E X T O (TIPO 1)
Autómata Linealmente Acotado ALA= < E, A, C, δ, e0, B, F, #, $>
E: conjunto finito de estados A: alfabeto de entrada; A ⊆C C: alfabeto de la cinta;
C=A ∪{B, #, $} ∪Auxiliares
δδδδ: función de transición
δδδδ: E x C →→→→E x C x {D, I, N} (1 cinta) (†) δδδδ: E x Ck→→→→E x (C x {D, I, N})k (k cintas)(†) e0: estado inicial; e0 ∈∈∈∈E
B: símbolo blanco; B ∉A y B ∈∈∈∈C F: conjunto de estados finales; F ⊆⊆⊆⊆E #: símbolo de inicio de la/s cinta/s $: símbolo de fin de la/s cinta/s
(†) En ninguna de las cintas se permiten movimientos a izquierda de # ni a derecha de $. Tampoco se permite reescribir los símbolos # y $.
Sensibles al Contexto o de Tipo 1
G = <N, T, P, S>
Formato reglas Tipo 1:
γγγγ
A
β
→
→
→
→ γγγγ
w
β
donde
A∈N∪{S};
γγγγ
,β
∈ (N∪T)*ω ∈ (N∪T)* - {ε}
Se puede incluir
S→ ε
SI
Jerarquía de Chomsky
Lenguajes Máquinas Gramáticas EQ. DET. y NO DET
E S T F R R U P A C O S T R E U S R A D O S
(TIPO 0
)
Máquina de Turing Determinística
MTD= < E, A, C, δ, e0, B, F>
E: conjunto finito de estados
A: alfabeto de entrada; A⊆C
C: alfabeto de cinta; C=A∪{B}∪Auxiliares δδδδ: función de transición
δδδδ: E x C →→→→E x C x {D, I, N} (1 cinta)
δδδδ: E x Ck→→→→E x (C x {D, I, N})k (k cintas)
e0: estado inicial; e0 ∈∈∈∈E
B: símbolo blanco; B ∉A y B ∈∈∈∈C F: conjunto de estados finales; F ⊆⊆⊆⊆E
Contractivas o de Tipo 0
G = <N, T, P, S>
Formato reglas Tipo 0:
γγγγ
A
β
→
→
→
→ γγγγ
w
β
donde
A∈N∪{S};
γγγγ, β ,ω ∈ (N∪T)*
(ωpuede serε)
SI
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Jerarquía de Lenguajes
Estructurados por frases
Sensibles al Contexto
Libres del Contexto NO determinísticos
Libres del contexto determinísticos
Regulares
- Máquinas de Turing Determinística - Gramáticas Contractivas (Tipo 0)
- Autómata Linealmente Acotado Determ. - Gramática Sensible al Contexto (Tipo 1)
- Autómata de Pila NO Determinístico - Gramática Libres del Contexto (Tipo 2 )
- Autómata Finito Determinístico - Gramática Regular (Tipo 3)
En la práctica se debe diseñar el autómata y la gramática más restrictivos según el lenguaje dado
- Autómata de Pila Determinístico - Gramática Libres del Contexto (Tipo 2 )
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
1) CASO MAS GENERAL:
No existen relaciones entre los símbolos de la cadena
Ejemplos:
L= {anbk cp / n, k, p ≥ 0 }
L= {x / x ∈{a,b}* y x contiene cantidad par de a’s y cantidad par de b’s}
Lenguaje tipo 3 o REGULAR
RECONOCER las cadenas con AUTÓMATA FINITO DETERMINÍSTICO
GENERAR las cadenas con GRAMÁTICA REGULAR o TIPO 3
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
2) Existen relaciones entre los símbolos de la cadena de a pares (excepto caso “cruzado” que se explica en la próxima filmina)
.
Ejemplos:
L={anbn /n ≥0}
L={x / x ∈{a,b}* y la cantidad de a’s en x es igual a la cantidad de b’s} L={anbk / n > k y k > 0}
L={ anbncmdm/ n, m > 0} Relación concatenada
L={ ancmdmbn/ n, m ≥0} Relación anidada
Lenguaje Tipo 2 o Libre del Contexto
RECONOCER las cadenas con AUTÓMATA DE PILA DETERMINÍSTICO o NO DETERMINÍSTICO (analizar el lenguaje para ver si lo pueden hacer
determinístico o no →NO son equivalentes)
GENERAR las cadenas con GRAMÁTICA LIBRE DEL CONTEXTO o TIPO2
¿Cómo identificar el tipo más
restrictivo de un lenguaje?
¿Cómo identificar el tipo más
restrictivo de un lenguaje?
3) Existen relaciones entre los símbolos de la cadena de a tres o más
(incluye un caso con relación de a dos cruzado)
Ejemplos: L={an bncn /n>0}
L={anbkck /n>k y k>0}
L={ anbjcndj/ n, j >0} Caso Cruzado
Lenguaje Tipo 1 o Sensible al Contexto
RECONOCER las cadenas con ALA DETERMINÍSTICO (en la práctica se permite usar MT determinística)
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Gramática incorrecta
L={a
nb
nc
n/n > 0}
S
→
A
A
→
aAbc
A
→
abc
Supongamos que construimos una gramática
Lenguaje Sensible al Contexto
S⇒A ⇒aAbc⇒aaAbcbc ⇒aaabcbcbc
Genera las cantidades correctas pero desordenadas.
Una vez que se escribieron, los símbolos terminales no se pueden
cambiar de lugar; por lo tanto se generan cadenas que no pertenecen
al lenguaje que se quiere generar.
No es correcto
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
REGLAS DE GENERACIÓN: PASO 1
L={a
nb
nc
n/n>0}
S
→
A
A
→
aABC
A
→
aBC
Lenguaje Sensible al Contexto
S⇒A ⇒aABC⇒aaABCBC ⇒aaaBCBCBC
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
REGLAS DE ORDENAMIENTO: PASO 2
L={a
nb
nc
2n/n > 0}
S
→
A
A
→
aABC
A
→
aBC
CB
→
BC
Lenguaje Sensible al Contexto
S⇒
A ⇒
aABC⇒
aaABCBC ⇒
aaaBCBCBC ⇒
aaaBBCCBC⇒
aaaBBCBCC⇒
aaaBBBCCC⇒
….
Una vez que los símbolos no terminales están ordenados, se tendrían que reemplazar por símbolos terminales
GRAMÁTICA CON REEMPLAZOS INCORRECTOS
L={a
nb
nc
n/n>0}
S
→
A
A
→
aABC
A
→
aBC
CB
→
BC
Lenguaje Sensible al Contexto
Ejemplo de derivación S⇒
A ⇒
aABC⇒
aaABCBC ⇒
aaaBCBCBC ⇒
aaaBBCCBC⇒
aaaBBCBCC⇒
aaaBBBCCC⇒
Una vez que los símbolos no terminales están ordenados se
tendrían que reemplazar por símbolos terminales
B
→
b
C
→
c
Si ponemos reglas independientes del contexto, se
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2015
Gramáticas Sensibles al Contexto (Tipo 1)
Aclaración:
CB→BC no respeta el formato de reglas de Tipo 1
Se utiliza para “resumir” el efecto de las siguientes 3 reglas:: AB →XB
XB →XA XA →BA
donde los símbolos A, B, X ∈N Formato reglas de tipo 1 γγγγAβ→→ γγγγ→→ wβ A ∈∈∈∈N ∪∪∪∪{S} γγγγ,β∈∈∈∈(N ∪∪∪∪T)* ω ∈ω ω ω ∈∈∈(N ∪∪∪∪T)* - {εεεε}
(*) En la práctica se puede usar, aclarando que no es tipo 1
γγγγ A β →→→→ γγγγ w β
ε
S
ε →
→
→
→
ε
A
ε
ε
A
ε →
→
→
→
ε
aABC
ε
ε
A
ε →
→
→
→
ε
abC
ε
b B
ε →
→
→
→
b
b
ε
b C
ε →
→
→
→
b
c
ε
c C
ε →
→
→
→
c
c
ε
γγγγ A β →→→→ γγγγ w β