Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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 - 2014
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 - 2014
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 - 2014
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 - 2014
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
βcambia
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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 - 2014
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 - 2014
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
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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
Jerarquía de Chomsky
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
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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
Jerarquía de Chomsky
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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 ⇒ ….
aaabbbcccddd
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
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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⇒ ccdd
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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.
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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
Todo lo que está desordenado debería generarse con
símbolos NO TERMINALES para poder ordenarlos
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⇒ ….
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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
pueden usar en cualquier momento (por ejemplo en el
paso 5); por lo tanto también podemos generar cadenas
que tienen sus símbolos desordenados
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA - 2014
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 β