Está en la página 1de 17

Lenguajes Formales y Autmatas

Profesor: Jorge Osio

CONTENIDO
[1_1.5]. Lenguajes Formales: caractersticas, descripciones,

operaciones, usos [1_8.4]. Conjuntos contables [2_2.4].


Diagonalizacin [2_2.4]. Lmites de la computabilidad
[2_2.4.3].
1. GERSTING, JUDITH L. Mathematical Structures
for Computer Science: A Modern Approach to
Discrete Mathematics. W H Freeman & Co, 2006.
2. HEIN, JAMES. Discrete Structures, Logic and
Computability. Jones and Bartlett Publishers 1995

Clases de gramtica
Estructura de frase (tipo 0): sin restricciones.
Sensible al contexto (tipo 1): para cada produccin

(excepto S ),
|| | |.
Libre de contexto (tipo 2): para cada produccin
(excepto S),
VN.
Regular (tipo 3) para cada produccin
(excepto S), VN y es de la forma t o tW, donde
t V T y W VN.

gramticas y lenguajes
Un lenguaje se dice de tipo N si puede ser generado

por una gramtica de tipo N

Dispositivos computacionales
El dispositivo computacional ms general se llama

mquina de Turing y se corresponde con los


lenguajes de tipo 0.
Los lenguajes reconocidos por mquinas de Turing son
los lenguajes de tipo 0.
El dispositivo computacional ms bsico se llama
autmata finito y se corresponde con los lenguajes
de tipo 3.

Dispositivos computacionales
Existen dispositivos computacionales con capacidad

intermedia entre aquellos reconocidos por autmatas


finitos y mquinas de Turing:
Autmatas a Pila para lenguajes de tipo 2
Mquinas de Turing acotadas linealmente para

lenguajes de tipo 1.

Operaciones sobre lenguajes


Los lenguajes son conjuntos (finitos o infinitos) de

cadenas y por tal motivo podemos operar sobre ellos:


Operaciones:
unin

interseccin
complemento
concatenacin

estrella de Kleene

operaciones
Sean L1 y L2 dos lenguajes sobre un alfabeto :
L1 L2 = {w | w L1 w L2}
L1 L2 = {w | w L1 y w L2}
L1 = {w | w * y w L1}
L1 L2 = {w1w2 | w1 L1 y w2 L2}
L1* = {w1w2wn | wi L1, n 0}

Gramticas regulares
Las gramticas regulares sirven para generar:
Cualquier lenguaje finito (aunque puede volverse una
tarea tediosa).
Lenguajes infinitos que presentan ciertas regularidades
que pueden ser expresada de manera sencilla utilizando
las llamadas expresiones regulares (como veremos ms
adelante)

Gramticas regulares
Ejemplos de lenguajes que pueden ser generados por

gramticas regulares:
L=. El lenguaje vaco.
L=*. para cualquier . El lenguaje universal.
L={w| w {a,b}* donde w tiene m as seguidas de n bs
para m,n 0}.
L={w| w {0,1}* donde w tiene exactamente tres 0s y
tres 1s}.

Gramtica libre de contexto


Las gramticas libres de contexto tienen ciertas

caractersticas destacadas:
Son sencillas, reemplazan un smbolo por vez.
Pueden ser utilizadas para describir la sintaxis de los
lenguajes de programacin.
La derivacin de una gramtica libre de contexto
puede ser vista como un rbol de derivacin.

Gramticas libres de contexto


Ejemplo de lenguajes que pueden ser generados por

gramticas libres de contexto:


Todos los que pueden ser generados por gramticas

regulares
L ={anbn| n > 0}
L={w|w{(,)}* donde los parntesis estn balanceados}
L={w| w {a,b}* y w=wr }.
Observacin: Si w = w1w2wn, wi {a,b}, entonces

wr = wnwn-1w1

Conjuntos contables
Sean A y B conjuntos. Si existe una biyeccin entre A y

B denotaremos este hecho escribiendo


|A| = |B|.
En este caso diremos que A y B tienen el mismo
tamao o la misma cardinalidad o que son
equipotentes.

Conjuntos contables
Cardinalidad de un conjunto finito

Cul es la cardinalidad del conjunto A definido


como sigue?
A = {(x + 1)3 | 1 (x + 1)3 3000, x N}
Existe una biyeccin f:{0, 1, . . . , 13} A
donde f(x) = (x + 1)3. Por lo tanto
|A| = |{0, 1, . . ., 13}|= 14.

Conjunto contable
Cardinalidad de un conjunto infinito

Sea Impar el conjunto de nmeros naturales impares.


Sea la funcin f : N Impar definida como f(x) = 2x + 1.
Dado que f es una biyeccin, podemos concluir que el
conjunto Impar y N tienen el mismo tamao. Es decir,
|Impar| = |N|.

Conjuntos contables
Un conjunto se dice contable si es finito o si existe

una biyeccin entre el mismo y N. En el ltimo caso


se dice que el conjunto es infinitamente contable.
En trminos de tamao decimos que un conjunto S es

contable si |S| = |{0, 1, . . . , n 1}|


para algn nmero natural n o |S| = |N|.
Si un conjunto no es contable, decimos que es

incontable.

Conjuntos contables
Propiedades de conjuntos contables
a. Todo subconjunto de N es contable.
b. S es contable si y slo si |S| |N|.
c. Cualquier subconjunto de un conjunto contable es
contable.
d. Cualquier imagen de un conjunto contable es
contable.

También podría gustarte