Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Repaso LenguajesFormales PDF
Repaso LenguajesFormales PDF
Profesor
Federico Peinado
Ingeniera en Informtica
Facultad de Informtica Universidad Complutense de Madrid
Curso 2009-2010
Lenguajes formales
Procesadores de Lenguaje
Ingeniera en Informtica R.1
Clasificacin de gramticas formales
Procesadores de Lenguaje
Ingeniera en Informtica R.2
Lenguajes regulares
Procesadores de Lenguaje
Ingeniera en Informtica R.3
Expresiones regulares (ERs)
Procesadores de Lenguaje
Ingeniera en Informtica R.5
Ejemplos de expresiones regulares
Procesadores de Lenguaje
Ingeniera en Informtica R.6
Gramticas formales
Procesadores de Lenguaje
Ingeniera en Informtica R.7
Gramticas regulares
Procesadores de Lenguaje
Ingeniera en Informtica R.8
Autmatas finitos (AFs)
Procesadores de Lenguaje
Ingeniera en Informtica R.9
Comportamiento de un autmata finito
Procesadores de Lenguaje
Ingeniera en Informtica R.10
Notaciones para autmatas finitos
Estados/Smbolos x y
eo ei -
e1 ej ek
Procesadores de Lenguaje
Ingeniera en Informtica R.11
Notaciones para autmatas finitos
a
a a
eo e1 e2
b
b
a a,b
eo e1 e2
a,b
Procesadores de Lenguaje
Ingeniera en Informtica R.12
Ejemplos de autmatas finitos
0 e1 [0-9]
eo e2
[1-9] e2
0 [0-9]
Nmeros naturales +,-
eo e1 e3
[1-9]
[a-z],[A-Z],[0-9]
eo e1
[a-z],[A-Z]
Identificadores (bsicos)
Procesadores de Lenguaje
Ingeniera en Informtica R.13
Expresiones regulares, gramticas regulares y autmatas finitos
Procesadores de Lenguaje
Ingeniera en Informtica R.14
Lenguajes incontextuales
Procesadores de Lenguaje
Ingeniera en Informtica R.15
Gramticas incontextuales
Procesadores de Lenguaje
Ingeniera en Informtica R.16
Ms sobre gramticas formales (incontextuales)
Procesadores de Lenguaje
Ingeniera en Informtica R.17
Ejemplo de derivacin
Gbin
bits bits bit bits bit bit
bit bit bit 1 bit bit 1 0 bit 1 0 1
Procesadores de Lenguaje
Ingeniera en Informtica R.18
Ms sobre gramticas formales (incontextuales)
Procesadores de Lenguaje
Ingeniera en Informtica R.19
rboles de derivacin
Procesadores de Lenguaje
Ingeniera en Informtica R.20
Ejemplo de rbol de derivacin (estructura)
Gbin
bits
bits bit
bits bit 1
bit 0
Procesadores de Lenguaje
Ingeniera en Informtica R.21
Ejemplo de gramtica incontextual ambigua
Gfbf
Terminales: p, , ,
No terminales: fbf
Axioma: fbf
Producciones:
fbf p
fbf fbf
fbf fbf fbf
fbf fbf fbf
Procesadores de Lenguaje
Ingeniera en Informtica R.22
Ejemplo de gramtica incontextual ambigua
p p p
fbf
fbf
fbf fbf
fbf fbf
p fbf fbf
fbf fbf p
p p p p
Basta con encontrar dos estructuras distintas para una misma sentencia
de un lenguaje para demostrar que su gramtica es ambigua
Procesadores de Lenguaje
Ingeniera en Informtica R.23
Autmatas a pila (APs)
Procesadores de Lenguaje
Ingeniera en Informtica R.24
Ejemplo de autmata a pila
APbin(equivalente a Gbin)
A = {0, 1}
P = {0, 1, bits, bit, $}
E = {x0, x1, x2}
p0 = $
e0 = x0
Definicin parcial de t:
t(<xo,,$>)= {<x1,$ bits>}
t(<x1,,bits>)= {<x1,bit>, <x1,bit bits>}
t(<x1,,bit>)= {<x1,0>, <x1,1>}
t(<x1,0,0>)= {<x1,>}
t(<x1,1,1>)= {<x1,>}
t(<x1,,$>)= {<x2,$>}
F = {x2}
Procesadores de Lenguaje
Ingeniera en Informtica R.25
Documentacin tcnica de un lenguaje de programacin
Procesadores de Lenguaje
Ingeniera en Informtica R.26
Notacin BNF
Procesadores de Lenguaje
Ingeniera en Informtica R.27
Ejemplo en notacin BNF
Procesadores de Lenguaje
Ingeniera en Informtica R.28
Notacin EBNF
BNF EBNF
TERMINAL terminal
Metasmbolo Metasmbolo
::= Equivalencia ::= Equivalencia
| Alternativa | Alternativa
(...) Agrupacin
[...] Aparicin opcional
{...} Aparicin 0, 1 o ms veces
(son ERs a la derecha de cada produccin)
Procesadores de Lenguaje
Ingeniera en Informtica R.30
Diagramas sintcticos
TERMINAL No Terminal
*En las reglas de produccin el no terminal
de la izquierda se deja sin recuadro
Alternativa
Procesadores de Lenguaje
Ingeniera en Informtica R.31
Ejemplo con diagramas sintcticos
N entero positivo
Dgito
Dgito
+
0
Dgito
1
9
Procesadores de Lenguaje
Ingeniera en Informtica R.32
Crticas, dudas, sugerencias
Federico Peinado
www.federicopeinado.es
Procesadores de Lenguaje
Ingeniera en Informtica R.33
Formas normales
Procesadores de Lenguaje
Ingeniera en Informtica R.34