Teoría de La Computación. Lenguajes, Autómatas, Gramáticas. Rodrigo de Castro. 2004
Tema 1.- Lenguajes. Gramáticas
description
Transcript of Tema 1.- Lenguajes. Gramáticas
Tema 1.- Lenguajes. Gramáticas
1. Definiciones.2. Operaciones con lenguajes:
-Booleanas.-Concatenación. Potencia. Cierre estrella.-Cocientes.-Reverso.-Sustitución. Homomorfismo. Homomorfismo inverso.
3. Gramáticas.4. Tipos de gramáticas.5. Propiedades de cierre.
1. Definiciones.
AlfabetoPalabra, cadena o frasePalabra vacía
Longitud de una palabra 0 si x =
| x | = | y | + 1 si x = ya (con a , y palabra sobre )
Ej. = {a, b}
Ej. x = abbab
n : conjunto de todas las palabras de longitud n sobre
Concatenación: Si x = a1a2...am e y = b1b2...bn se define xy = a1a2...amb1b2...bn Propiedades.
1. Asociativa2. Elto. neutro ()
Lenguaje: cualquier subconjunto de * .
0
*
i
i
2. Operaciones con lenguajes.
-Booleanas.
UniónL1L2 ={x * : x L1 x L2}
IntersecciónL1L2 ={x * : x L1 x L2}
Complementación
L = {x * : x L}
DiferenciaL1 - L2 = L1 L2
Diferencia simétricaL1 L2 = (L1 - L2 ) (L1 - L2 )
-Concatenación. Potencia. Cierre estrella.
-Concatenación de lenguajes. L1L2 = {x y * : x L1 y L2}
-No conmutativa L1L2 L2L1
-Asociativa L1(L2 L3) = (L1 L2) L3
-Anulador L1 =
-Distributiva respecto de la unión L1(L2 L3) = L1L2 L1L3
-No distributiva resp. intersección L1(L2 L3) L1L2 L1L3
Ej: L1= {a, ab}, L2= {a}, L3= {ba}
Propiedades.
-Cierre estrella.
- Potencia de un lenguaje. {} si n = 0
L n = L n -1L si n > 0
-Cierre positivo.
-Potencia. Cierre estrella. Cierre positivo
0
*
i
iLL 0
i
iLL
LL
LLL
si
si*
*
Relación.
-Propiedades.
*LLL
)(2121 NnLLLL nn
)( 21*2
*121
LLLLLL
** LLLLL
*** LL LL
**LL ** LL
4.
3.
2.
1.
8.7.
6.
5.
-Cociente de un lenguaje por una palabra.
-Propiedades.1. 2.
3.
4.
5. 6.
21
11
21 LuLuLL 21
11
211 )( LuLuLLu
21
11
211 )( LuLuLLu
121
211
1211
211
si)(
si)()(
LLaLLa
LLLaLLa
*1*1 )( LLaLa )()( 111 LuvLuv
-Por la derecha
LuvvLu :*1
LvuvLu :*1
-Por la izquierda
-Cociente de lenguajes.
-Por la derecha
12*
21
1 ,: LuLuvvLL
-Por la izquierda
12*1
12 ,: LuLvuvLL
-Reverso de una palabra.Si x = a1a2...am se define xr = amam-1...a1.
-De manera recursiva
x si x = xr =
ayr si x = ya, y * , a
-Propiedades1.- (xy)r= yrxr
2.- (x r)r= x
-Reverso de un Lenguaje. L r = {x r: x L}
-Propiedades1.- (L1L2)
r= L2r L1
r
2.- (L r)r= L
Sustitución
-Dados los alfabetos y se define
-Extensión a palabras (sustitución):
Sustitución en un lenguaje
Homomorfismo-Dados los alfabetos y un homomorfismo es h: *-Extensión a palabras h : * *
h(L)={h(x) : x L}
Homomorfismo inverso: h-1(y) = {x * : h(x) = y} h-1(L) = {x * : h(x) L}
)()()(
}{)(
afxxa
)()( xLLx
-Sustitución. Homomorfismo. Homomorfismo inverso
)()()(
)(
ahxhxah
h
*
2: f
*
2: *
G = (N, , P, S)N = conjunto de terminales. = alfabeto.P = conjunto de reglas de producción.S N, axioma
P V*NV* V*(, ) P se denota
3. Gramáticas
Ejemplo: L = {an b2n: n 1}
G = ( {S}, {a, b}, , S )
NV
N
aSbbabbS | aSbbSabbS ,
'' G’, ’ V*, ’ deriva directamente en ’ en G ( ) si:
’ = ’ = con
deriva en en G ( ) si existe 1, 2, ... n V* :
1 = , n = y además i = 1..n - 1
G
1 iG
i
V* es una forma sentencial de G si . Si * , es una palabra generada por G.
G
S
Lenguaje generado por G }:{)(
** xSxGL
G
G equivalente a G ’ si L(G) = L(G ’)
P
4. Tipos de Gramáticas
Regulares (tipo 3): A, B N. a, b {}a) Lineales por la derecha: A aB | bb) Lineales por la izquierda: A Ba | b
Incontextuales (tipo 2): A con A N, V*
Contextuales (tipo 1): con A N; , V* ; V +
- Formas sentenciales de longitud no decreciente- a condición de que ...
No restringidas (tipo 0)
L3 L2 L1 L0 L0L3 L2 L1
S
A
5. Propiedades de cierre
- Dada G = (N, , P, S) existe G’ equivalente a G sin terminales en parte izquierda de reglas de producción.
-Si tenemos la regla aA a con A N, , V* a la sustituimos por las reglas
Xa A Xa Xa a
que producen el mismo efecto
- Todo lenguaje finito es de tipo 3.Ej. El lenguaje L = {aba, ac} se puede generar con la gramática
S aAA bB | cB a
Cierre respecto de la Unión de LenguajesL, L’ Li L L’ Li Dadas G = (N, , P, S) con L = L(G) G’ = (N’, ’, P’, S’) con L’ = L(G’) y N N ’=
Si i 1 Sea G’’ = (N’’, ’’, P’’, S’’) con: N’’ = N N’ {S’’} ’’ = ’ P’’ = P P’ {S’’ S | S’}
Si i = 1 y L L’ , Sean L1=L-{} y L2=L’ - {} Construcción anterior para L1 L2
L L’ = L1 L2 {}. Se añade S’’
Cierre respecto de la Concatenación de LenguajesL, L’ Li L L’ Li Dadas G = (N, , P, S) con L = L(G) G’ = (N’, ’, P’, S’) con L’ = L(G’) tales que N N ’= , P’ y P sin terminales en parte izda. Si i = 0, 2 que no sean de tipo 1 y 3, Sea G’’ = (N’’, ’’, P’’, S’’) con:N’’ = N N’ {S’’}, ’’ = ’, P’’ = P P’ {S’’ S S’ } Si i = 1 y L o L’ , Sean L1=L-{} y L2=L’ - {} Construcción anterior para L1L2
L L’ = L1L2 L1 L2 {} si L y L’ = L1L2 L1 si L y L’ = L1L2 L2 si L’ y L Si i = 3 G’’ = (N’’, ’’, P’’, S) con N’’ = N N’ , ’’ = ’, P’’ = P1 P’ con P1 = P salvo las reglas A a que pasan a serA aS’ si a
Cierre respecto de la Clausura de KleeneL Li L * Li Solo para tipo 3: Dada G = (N, , P, S) con L = L(G) Sea G’ = (N {S0}, , P P’ P’’, S0 ) con: P’ = {A a S0 : A a P } P’’ = {S0 | S } L(G’) = L*
Cierre respecto de la inversiónL Li Lr Li Dada G = (N, , P, S) con L = L(G) Sea G’ = (N , , P’, S0) con: P’ = { r r : P } (Las de tipo 3 l.d. Pasan a ser l.i.)L(G’) = Lr