03 GramaticasFormales Parte1
03 GramaticasFormales Parte1
Luis M. Estrada
luis.estrada@ingeniería.unam.edu
Agenda
1
▪ Gramáticas Formales
Luis M. Estrada |
Expresiones Regulares
3
Luis M. Estrada |
Gramáticas Formales
5
Luis M. Estrada |
Gramática
16
Estos_símbolos → Por_estos
Cabeza se sustituyen Cuerpo
Luis M. Estrada |
Gramáticas Formales
5
Estos_símbolos → Por_estos
Cabeza se sustituyen Cuerpo
Luis M. Estrada |
Gramáticas Formales
5
Luis M. Estrada |
Gramáticas formales
10
Luis M. Estrada |
Gramáticas formales
10
Luis M. Estrada |
Gramáticas formales
10
Luis M. Estrada |
Gramáticas formales
10
Luis M. Estrada |
Ejemplo 1:
25
Σ= {a,b,c}
V= {S,X,Y}
Variable inicial: S
Reglas:
S → aX
X→ b
X → bY
Y→c
Luis M. Estrada |
Ejemplo 1:
25
Σ= {a,b,c}
V= {S,X,Y}
Variable inicial: S
Reglas:
S → aX Cuando dos o más regl as
X→ b tienen la misma cabeza se
suele poner solo una vez la
X → bY cabeza y juntar los cuerpos
Y→c de las regl as con un |
Luis M. Estrada |
Ejemplo 1:
25
Σ= {a,b,c}
V= {S,X,Y}
Variable inicial: S
Reglas:
S → aX Cuando dos o más regl as
X → b | bY tienen la misma cabeza se
suele poner solo una vez la
X→ bY cabeza y juntar los cuerpos
Y→c de las regl as con un |
Se lee: “o por”
Luis M. Estrada |
Ejemplo 1:
25
S→aX
X→bY | b
Y→c
Luis M. Estrada |
Forma sentencial
25
Luis M. Estrada |
Derivación
25
Luis M. Estrada |
Ejemplo 1: Tabla de derivación
25
S → aX
X → b | bY
Y→c Regla aplicada Cadena
Luis M. Estrada |
Ejemplo 1: Tabla de derivación
25
S → aX
X → b | bY
Y→c Regla aplicada Cadena
S
S → aX aX
Luis M. Estrada |
Ejemplo 1: Tabla de derivación
25
S → aX
X → b | bY
Y→c Regla aplicada Cadena
S
S → aX aX
X → bY abY
Luis M. Estrada |
Ejemplo 1: Tabla de derivación
25
S → aX
X → b | bY
Y→c Regla aplicada Cadena
S
S → aX aX
X → bY abY
Y→c abc
Luis M. Estrada |
Ejemplo 1: Tabla de derivación
25
S → aX
X → b | bY
Y→c Regla aplicada Cadena
S
S → aX aX
X → bY abY
Y→c abc
Luis M. Estrada |
Ejemplo 1: Tabla de derivación
25
S → aX
X → b | bY
Y→c Regla aplicada Cadena
S
S → aX aX
X → bY abY
Y→c abc
S → ab | abc
S
S → ab ab
S
S → aX aX
X → bY abY
Y→c abc
S → aSaX | aaX
X→b
Luis M. Estrada |
Lenguaje generado por una gramática
10
Luis M. Estrada |
Derivación de cadenas
5
Luis M. Estrada |
Lenguaje generado por una gramática
10
L(G) = {w ∈ Σ* | S ⇒* w}
Luis M. Estrada |
Lenguajes y sus gramáticas
3
Luis M. Estrada |
30
¡A construir gramáticas!
Luis M. Estrada |
Ejemplos 2:
30
Luis M. Estrada |
Ejemplos 2:
30
S
S→λ λ
Luis M. Estrada |
Ejemplos 2:
30
Luis M. Estrada |
Ejemplos 2:
30
S
S→a a
Luis M. Estrada |
Ejemplo 2:
30
Luis M. Estrada |
Ejemplo 2:
30
S → λ| aS Derivación de aaa
S
S → aS aS
S → aS aaS
S → aS aaaS
S→ λ aaa
Luis M. Estrada |
Ejemplo 3:
37
Luis M. Estrada |
Ejemplo 3:
37
S
S → bS bS
S → aS baS
S → bS babS
S → bS babbS
S→ λ babb
Luis M. Estrada |
Ejemplo 3':
37
Luis M. Estrada |
Ejemplo 3':
37
Luis M. Estrada |
Ejemplo 4:
44
Luis M. Estrada |
Ejemplo 4:
44
S → λ | abS
Derivación de abab
S
S → abS abS
Luis M. Estrada |
Ejemplo 6:
55
Luis M. Estrada |
Ejemplo 6:
55
S → bbB | aS | baS
B → λ | aB | bB
Luis M. Estrada |
Ejemplo 6:
55
Luis M. Estrada |
Ejemplo 6:
55
Luis M. Estrada |
Ejemplo 6:
55
Luis M. Estrada |
Ejemplo 6:
55
Luis M. Estrada |
Ejemplo 6:
55
Luis M. Estrada |
Ejemplo 6:
55
S → b bB ababbB
Luis M. Estrada |
Ejemplo 6:
55
S → b bB ababbB
B → bB ababbbB
Luis M. Estrada |
Ejemplo 6:
55
S → b bB ababbB
B → bB ababbbB
B→ λ ababbb
Luis M. Estrada |
Ejemplo 7:
58
Solución:
Luis M. Estrada |
Ejemplo 7:
58
Solución:
S → aBc
B → λ | bB
Luis M. Estrada |
Ejemplo 7:
58
Solución:
Luis M. Estrada |
Ejemplo 7:
58
Solución:
S → bAb
A → λ| aaaA
Luis M. Estrada |
Ejemplo 8:
58
Luis M. Estrada |
Ejemplo 8:
58
S → aS | bS | λ S
S → aS aS
S → aS aaS
S → aS aaaS
S → bS aaabS
S → bS aaabbS
S → bS aaabbbS
S→ λ aaabbb
Luis M. Estrada |
Ejemplo 8:
58
Solución:
Derivación de a3b3
S → aSb | λ
Regla aplicada Cadena
S
S → aSb aSb
Luis M. Estrada |
Ejemplo 9:
58
¿Qué es un palíndromo?
Luis M. Estrada |
Ejemplo 9:
58
Ejemplos de palíndromos:
abaaba
abababa
No es palíndromo:
ababba
Luis M. Estrada |
Ejemplo 9:
58
Solución:
Luis M. Estrada |
Ejemplo 9:
58
Solución:
S → aSa | bSb | a | b
Luis M. Estrada |
Ejemplo 10:
26
Luis M. Estrada |
Ejemplo 10:
26
Solución?:
Luis M. Estrada |
Ejemplo 10:
26
Solución:
S → (S)S | λ
Luis M. Estrada |
Ejemplo 11:
28
Luis M. Estrada |
Ejemplo 11:
28
Solución:
S → aSd | aXd
X → bXc | bc
Luis M. Estrada |
Ejemplo 12:
30
Luis M. Estrada |
Ejemplo 12:
30
Solución:
S → aSc | B
B → bBc | bc
Luis M. Estrada |
Ejemplo 12:
30
Luis M. Estrada |
Ejemplo 12:
30
S → aSbc | abc
Luis M. Estrada |
Ejemplo 12:
30
Luis M. Estrada |
Ejemplo 13:
30
Ejemplos de cadenas:
abababab
w w
Luis M. Estrada |
Ejemplo 13:
30
Ejemplos de cadenas:
abababab
w w
ababbaba
m1 m2
Luis M. Estrada |
Ejemplo 13:
30
Ejemplos de cadenas:
abababab
w w
abababab
m 1 (m 2 ) R
Luis M. Estrada |
Ejemplo 13:
30
Solución: S
S → PF
P → aPa| bPb| λ
Luis M. Estrada |
Ejemplo 13:
30
Solución: S
S → PF S → PF PF
P → aPa| bPb| λ
Luis M. Estrada |
Ejemplo 13:
30
Solución: S
S → PF S → PF PF
P → aPa| bPb| λ P → aPa aPaF
Luis M. Estrada |
Ejemplo 13:
30
Solución: S
S → PF S → PF PF
P → aPa| bPb| λ P → aPa aPaF
P → bPb abPbaF
Luis M. Estrada |
Ejemplo 13:
30
Solución: S
S → PF S → PF PF
P → aPa| bPb| λ P → aPa aPaF
P → bPb abPbaF
P → bPb abbPbbaF
Luis M. Estrada |
Ejemplo 13:
30
Solución: S
S → PF S → PF PF
P → aPa| bPb| λ P → aPa aPaF
P → bPb abPbaF
P → bPb abbPbbaF
P→ λ abbbbaF
Luis M. Estrada |
Ejemplo 13:
30
Solución: S
S → PF S → PF PF
P → aPa| bPb| C P → aPa aPaF
P → bPb abPbaF
P → bPb abbPbbaF
P→ C abbCbbaF
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF
P → aPa| bPb| C
C →CI
Iab → bIa
Iba → aIb
Iaa → aIa
Ibb → bIb
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C
C →CI
Iab → bIa
Iba → aIb
Iaa → aIa
Ibb → bIb
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C Ibb → bIb abbCbIbaF
C →CI
Iab → bIa
Iba → aIb
Iaa → aIa
Ibb → bIb
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C Ibb → bIb abbCbIbaF
C →CI Iba → aIb abbCbaIbF
Iab → bIa
Iba → aIb
Iaa → aIa
Ibb → bIb
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C Ibb → bIb abbCbIbaF
C →C I
Iab → bIa Iba → aIb abbCbaIbF
Iba → aIb
Iaa → aIa
Ibb → bIb
IbF → Fb
IaF → Fa
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C Ibb → bIb abbCbIbaF
C →C I
Iab → bIa Iba → aIb abbCbaIbF
Iba → aIb IbF → Fb abbCbaFb
Iaa → aIa
Ibb → bIb
IbF → Fb
IaF → Fa
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C Ibb → bIb abbCbIbaF
C →C I
Iab → bIa Iba → aIb abbCbaIbF
Iba → aIb IbF → Fb abbCbaFb
Iaa → aIa
C → CI abbCIbaFb
Ibb → bIb
IbF → Fb
IaF → Fa
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C Ibb → bIb abbCbIbaF
C →C I
Iab → bIa Iba → aIb abbCbaIbF
Iba → aIb IbF → Fb abbCbaFb
Iaa → aIa
C → CI abbCIbaFb
Ibb → bIb
IbF → Fb Iba → aIb abbCaIbFb
IaF → Fa
Luis M. Estrada |
Ejemplo 13:
30
Solución: abbCbbaF
S → PF C → CI abbCIbbaF
P → aPa| bPb| C Ibb → bIb abbCbIbaF
C →C I
Iab → bIa Iba → aIb abbCbaIbF
Iba → aIb IbF → Fb abbCbaFb
Iaa → aIa
C → CI abbCIbaFb
Ibb → bIb
IbF → Fb Iba → aIb abbCaIbFb
IaF → Fa IbF → Fb abbCaFbb
Luis M. Estrada |
Ejemplo 13:
30
Luis M. Estrada |
Ejemplo 13:
30
Solución:
S → aXa| bXb| λ
X → aXa| bXb | aa | bb
Luis M. Estrada |
Ejemplo 13:
30
Solución:
S → aXFa| bXFb| λ
X → aXa| bXb | CaPa| CbPb
Luis M. Estrada |
Ejemplo 13:
30
Solución:
S → aXFa| bXFb| λ
X → aXa| bXb | CaPa| CbPb
Pab → bPa
Pba → aPb
Paa → aPa
Pbb → bPb
Luis M. Estrada |
Ejemplo 13:
30
Solución:
S → aXFa| bXFb| λ PaFa → Faa
X → aXa| bXb | CaPa| CbPb PaFb → Fba
Pab → bPa PbFa → Fab
Pba → aPb PbFb → Fbb
Paa → aPa
Pbb → bPb
Luis M. Estrada |
Ejemplo 13:
30
Solución:
S → aXFa| bXFb| λ PaFa → Faa
X → aXa| bXb | CaPa| CbPb PaFb → Fba
Pab → bPa PbFa → Fab
Pba → aPb PbFb → Fbb
Paa → aPa Caa → CaPa
Pbb → bPb Cab → CaPb
Cba → CbPa
Cbb → CbPb
Luis M. Estrada |
Ejemplo 13:
30
Solución:
S → aXFa| bXFb| λ PaFa → Faa CaFb → ab
X → aXa| bXb | CaPa| CbPb PaFb → Fba CaFa → aa
Pab → bPa PbFa → Fab CbFb → bb
Pba → aPb PbFb → Fbb CbFa → ba
Paa → aPa Caa → CaPa
Pbb → bPb Cab → CaPb
Cba → CbPa
Cbb → CbPb
Luis M. Estrada |
Regla aplicada Cadena
S
S →aXFa aXFa
P bb → b P b abaCbabPbFa C bb → C b P b abaCbPbFaab
P bF a → F ab abaCbabFab P bF a → F a b abaCbFabab
Luis M. Estrada |
Ejemplo 13:
30
a n=0
aa n=1
aaaa n=2
aaaaaaaa n=3
aaaaaaaaaaaaaaaa n=4
Luis M. Estrada |
Ejemplo 13:
30
S → EaF
E → λ | EN
Na → aaN
NF → F
F→ λ
Luis M. Estrada |
Ejemplo 13:
30
E→λ NNNaF
… …
Luis M. Estrada |
Ejemplo 13:
30
… …
Luis M. Estrada |
Ejemplo 13:
30
Luis M. Estrada |
Resumen
30
Regulares →o← No No
L. Contexto → y/o ← No No
S. Contexto → y/o ← Sí No
Sin → y/o ← Sí Sí
restriccones
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Ej1:
S → aX
X → b | bY
Y→c
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Ej2:
S → bbB | aS |baS
B → λ | aB |bB
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Ej3:
S → Sab |λ
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Tipo 3
Ej1:
S → aSa | bSb | a | b
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Tipo 3
Ej2:
S → (S)S | λ
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Tipo 0
α1Vα2 → β
Luis M. Estrada |
Lenguajes y sus gramáticas
42
Tipo 0
α1Vα2 → β
Luis M. Estrada |
Lenguajes y sus gramáticas
42
α1Vα2 → β
Tipo 0
Tipo 3
Luis M. Estrada |
Lenguajes y sus gramáticas
42
α1Vα2 → β
Tipo 0
X Y
a X Y c
b λ
c
Ejemplo 10:
26
Solución:
S → (S)S | λ
Derivación de (())
Regla aplicada Cadena
S
S
Luis M. Estrada |
Ejemplo 10:
26
Solución:
S → (S)S | λ
Derivación de (())
Regla aplicada Cadena
S
S
( S ) S S → (S)S (S)S
Luis M. Estrada |
Ejemplo 10:
26
Solución:
S → (S)S | λ
Derivación de (())
Regla aplicada Cadena
S
S
( S ) S S → (S)S (S)S
S → (S)S ((S)S)S
( S ) S
Luis M. Estrada |
Ejemplo 10:
26
Solución:
S → (S)S | λ
Derivación de (())
Regla aplicada Cadena
S
S
( S ) S S → (S)S (S)S
S → (S)S ((S)S)S
S→ λ (()S)S
( S ) S
Luis M. Estrada |
Ejemplo 10:
26
Solución:
S → (S)S | λ
Derivación de (())
Regla aplicada Cadena
S
S
( S ) S S → (S)S (S)S
S → (S)S ((S)S)S
S→ λ (()S)S
( S ) S
S→ λ (())S
λ λ
Luis M. Estrada |
Ejemplo 10:
26
Solución:
S → (S)S | λ
Derivación de (())
Regla aplicada Cadena
S
S
( S ) S S → (S)S (S)S
S → (S)S ((S)S)S
S→ λ
( S ) S λ (()S)S
S→ λ (())S
λ λ S→λ (())
Luis M. Estrada |
Resumen
42
Tipo 0
Tipo 1
Tipo 2
Tipo 3