Anda di halaman 1dari 39

Lenguajes Formales y Automatas

Jose A. Rodrguez Melquiades

24 de agosto de 2015

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

1 / 26

Lenguajes y Gramaticas

Contenido del curso

Sistemas y metodos formales

Lenguajes formales
Operaciones con lenguajes
Metodos formales
Equivalencias
Metalenguaje

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

2 / 26

Lenguajes formales y automatas


Gramaticas y Lenguajes regulares.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

3 / 26

Lenguajes formales y automatas


Gramaticas y Lenguajes regulares.

Gramaticas y Lenguajes Libres del Contexto.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

3 / 26

Lenguajes formales y automatas


Gramaticas y Lenguajes regulares.

Gramaticas y Lenguajes Libres del Contexto.

Gramaticas y Lenguajes sensibles del Contexto.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

3 / 26

Lenguajes y Gramaticas

Contenido del curso

Sistemas y metodos formales

Lenguajes formales
Operaciones con lenguajes
Metodos formales
Equivalencias
Metalenguaje

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

4 / 26

Sistemas formales
Son sistemas para manipular formas sin importar su significado, es decir la
sintaxis. El primer sistema formal se encuentra en los trabajos de Euclides
(300 AC) cuyos trabajos organizaban y sistematizaban todo el conocimiento
de la epoca con relaci
on a la geometra. La presentacion se hizo mediante
axiomas, definiciones, postulados y teoremas.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

5 / 26

Sistemas formales
Son sistemas para manipular formas sin importar su significado, es decir la
sintaxis. El primer sistema formal se encuentra en los trabajos de Euclides
(300 AC) cuyos trabajos organizaban y sistematizaban todo el conocimiento
de la epoca con relaci
on a la geometra. La presentacion se hizo mediante
axiomas, definiciones, postulados y teoremas.

La estructura basica de los sistemas formales se debe a Renato Descartes y


Leibniz sobre lenguajes y alfabetos. Frege, Peano, Bertran Russel quienes
crearon una formalizaci
on de estos sistemas.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

5 / 26

Sistemas formales
Son sistemas para manipular formas sin importar su significado, es decir la
sintaxis. El primer sistema formal se encuentra en los trabajos de Euclides
(300 AC) cuyos trabajos organizaban y sistematizaban todo el conocimiento
de la epoca con relaci
on a la geometra. La presentacion se hizo mediante
axiomas, definiciones, postulados y teoremas.

La estructura basica de los sistemas formales se debe a Renato Descartes y


Leibniz sobre lenguajes y alfabetos. Frege, Peano, Bertran Russel quienes
crearon una formalizaci
on de estos sistemas.

Las propiedades de un sistema formal son:


(a) Consistencia.
(b) Completitud.
Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

5 / 26

Metodos formales
Son tecnicas con fundamentos matematicos que son usados para describir y
analizar las propiedades de los sistemas.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

6 / 26

Metodos formales
Son tecnicas con fundamentos matematicos que son usados para describir y
analizar las propiedades de los sistemas.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

6 / 26

Metodos formales
Son tecnicas con fundamentos matematicos que son usados para describir y
analizar las propiedades de los sistemas.

Ayudan a evaluar o eliminar las ambiguedades e inconsistencias en la


especificaci
on. Generalmente, cada metodo formal esta asociado a un
lenguaje formal.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

6 / 26

Lenguajes y Gramaticas

Contenido del curso

Sistemas y metodos formales

Lenguajes formales
Operaciones con lenguajes
Metodos formales
Equivalencias
Metalenguaje

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

7 / 26

Lenguaje
Un lenguaje es una forma de comunicaci
on basada en un conjunto de smbolos y
un conjunto de metodos (reglas) que enlazan tales smbolos. Los lenguajes pueden
ser:
(a) Lenguaje natural.
(b) Lenguajes de programaci
on.
(c) Protocolos de comunicaci
on.
El estudio de los lenguajes formales, bajo la forma de gramaticas, es la base de la
teora de la interpretaci
on y compilaci
on.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

8 / 26

Un lenguaje formal es tal que:


(a) Tiene una sint
axis bien definida de modo tal que, dada una sentencia o
palabra, siempre es posible conocer si ella pertenece o no al lenguaje.
(b) Tiene una sem
antica precisa de tal forma que no contiene sentencias sin
significado o ambiguas.

Ejemplos:
Java.
C.
Pyton.
Prolog.
HTML.
etc..

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

9 / 26

Un lenguaje formal es tal que:


(a) Tiene una sint
axis bien definida de modo tal que, dada una sentencia o
palabra, siempre es posible conocer si ella pertenece o no al lenguaje.
(b) Tiene una sem
antica precisa de tal forma que no contiene sentencias sin
significado o ambiguas.

Ejemplos:
Java.
C.
Pyton.
Prolog.
HTML.
etc..
En este curso se estudiara la definici
on general de lenguaje formal, sin
considerar a la semantica.
Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

9 / 26

Se entiende por Teora de Lenguajes Formales y Automatas, el estudio de


modelos matematicos que permiten la especificaci
on y el reconocimiento de
los lenguajes, su clasificaci
on, propiedades, caracteristicas y sus relaciones.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

10 / 26

Se entiende por Teora de Lenguajes Formales y Automatas, el estudio de


modelos matematicos que permiten la especificaci
on y el reconocimiento de
los lenguajes, su clasificaci
on, propiedades, caracteristicas y sus relaciones.

La teora de lenguajes formales y automatas es importante para la ciencia de


la computaci
on, pues apoya en:
(a) Aspectos te
oricos para la decidibilidad, computabilidad y complejidad.
(b) Fundamenta diversas aplicaciones tales como el procesamiento de lenguajes,
reconocimiento de patrones y modelamiento de sistemas.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

10 / 26

Ejemplos:
Sea = {0, 1} un alfabeto, donde = {, 0, 1, 00, 01, 10, 000, . . .} es un
conjunto de palabras. Algunos los lenguajes son:
(1) L = es un lenguaje que no contiene palabras.
(2) L = {} contiene una u
nica palabra, es decir, la palabra vacia.
(3) L = {0} contiene una u
nica palabra, es decir, la palabra 0.
(4) L = {w /2 |w | 20}.
(5) L = {02n 1n /n N}.
(6) L = {02n 1n 02n /n N}.
(7) L = {01} {10}.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

11 / 26

Operaciones con lenguajes


Uni
on
Si L1 y L2 son lenguajes definidos sobre los alfabetos 1 y 2 , entonces
L1 L2 es un lenguaje definido sobre 1 2 .
L1 L2 = {w1 L1 w1 L2 }
Ejemplo:
Sean los lenguajes L1 = {an b/n 1}, L2 = {ab m /m [2, 10]}. Entonces la
union de estos lenguajes esta dado por:
L1 L2 = {an b/n 1} {ab m /m [2, 10]}
Algunas palabras son:
w = aaaab

w = a...b

w = abbb

w = abbbbbbbbbb

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

12 / 26

Intersecci
on
Si L1 y L2 son lenguajes definidos sobre los alfabetos 1 y 2 , entonces
L1 L2 es un lenguaje definido sobre 1 2 .
Ejemplo:
Sean los lenguajes L1 = {an /n [1, 20]}, L2 = {am /m [5, 10]}. Entonces la
intersecci
on de estos lenguajes esta dado por:
L1 L2 = {an /n [1, 20]} {am /m [5, 10]} = L2

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

13 / 26

Diferencia
Si L1 y L2 son lenguajes definidos sobre los alfabetos 1 y 2 , entonces
L1 L2 es un lenguaje definido sobre 1 .
Ejemplo:
Sean los lenguajes L1 = {an /n [1, 20]}, L2 = {b m /m [5, 10]}. Entonces la
diferencia de estos lenguajes esta dado por:
L1 L2 = {an /n [1, 20]} {b m /m [5, 10]} = L1

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

14 / 26

Concatenaci
on
Si L1 y L2 son lenguajes definidos sobre los alfabetos 1 y 2 , entonces
L1 L2 = {uv /u L1 v L2 }
es un lenguaje.
Ejemplos:
Sean los lenguajes
L1 = {u {0, 1} |u| = 10}
y
L2 = {0v /v {0, 1} }.
Entonces
(1) L1 L1 = {w {0, 1} / |w | = 20}
(2) L1 L2 es un lenguaje tal que el smbolo en la posici
on once es 0.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

15 / 26

Definicion:
Sea L un lenguaje, entonces Ln , n N, se define recursivamente por:
(a) L0 = {}
(b) Ln = Ln1 L, n 1

Definicion:
Sea L un lenguaje, entonces la cerradura de Kleene L se define recursivamente
por:
(a) L .
(b) Si u L y v L, entonces uv L

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

16 / 26

De las definiciones anteriores se puede definir:


S
L = nN Ln

L+ =

nN{0}

Ln

De estas definiciones se deduce:


L = L+ {}

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

17 / 26

Ejemplos:
(1) = {}

+ =

(2) = {}+ = {}
(3) {0} = {0n /n N}

{0}+ = {0n /n 1}

(4) {, 00, 11} = {, 00, 11}+ = {} {00, 11}+

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

18 / 26

Complemento
Sea L un lenguaje definida sobre el alfabeto . El complemento de L se define por
L = L

Ejemplo:
Sea L = {an b n /n 1} definido por = {a, b}. El complemento de L esta dado
por:
L = L = {a, b} L
Algunas palabras son:
w = aaa

w = bbb

w = bbbaa

w = ababab
w = aabb
/L
Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

19 / 26

Observaci
on
(1) El conjunto contiene todos los posibles lenguajes que se pueden definir
sobre el alfabeto .
(2) Los lenguajes de interes son definidas como un subconjunto propio de .

Figura: Lenguaje L.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

20 / 26

Ejemplo:
Sea = {n, (, ), +, , , /} un alfabeto. Un lenguaje L es aquel en el que las
palabras son semejantes del punto de vista estructural, con las palabras que
representan expresiones aritmeticas de los lenguajes de programacion de alto nivel,
es decir:
n
), . . .}
L = {n, n + n, (n n), n ( n+n+n

Algunas palabras obtenidas de L son:


(a) n + +
(b) n
(c) (n n)))
(d) n (n(+n + /))
(e)

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

21 / 26

Observaci
on
Los lenguajes de interes, lenguajes de programaci
on, normalmente
corresponden a un subconjunto propio de cerradura reflexiva y transitiva del
alfabeto sobre el cual se construyen las palabras. Por ello es necesario
metodos y notaciones que permitan identificar las palabras que pertenecen al
lenguaje.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

22 / 26

Observaci
on
Los lenguajes de interes, lenguajes de programaci
on, normalmente
corresponden a un subconjunto propio de cerradura reflexiva y transitiva del
alfabeto sobre el cual se construyen las palabras. Por ello es necesario
metodos y notaciones que permitan identificar las palabras que pertenecen al
lenguaje.
Otro aspecto es que los lenguajes de interes tienen una cantidad finita de
palabras.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

22 / 26

Observaci
on
Los lenguajes de interes, lenguajes de programaci
on, normalmente
corresponden a un subconjunto propio de cerradura reflexiva y transitiva del
alfabeto sobre el cual se construyen las palabras. Por ello es necesario
metodos y notaciones que permitan identificar las palabras que pertenecen al
lenguaje.
Otro aspecto es que los lenguajes de interes tienen una cantidad finita de
palabras.
Por estos dos motivos, existe mucho interes por metodos que permitan
especificar los lenguajes mediante representaciones finitas, es decir, metodos
formales.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

22 / 26

Metodos formales
Gram
atica: Es un formalismo usado para definir lenguajes mediante la
generacion de las palabras. Esta forma de especificacion es aplicable para los
lenguajes finitos e infinitos.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

23 / 26

Metodos formales
Gram
atica: Es un formalismo usado para definir lenguajes mediante la
generacion de las palabras. Esta forma de especificacion es aplicable para los
lenguajes finitos e infinitos.

Reconocedor: Es una especificaci


on finita de dispositivos de aceptacion o
rechazo de palabras. El metodo es aplicable para la especificacion formal de
los lenguajes finitos e infinitos.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

23 / 26

Metodos formales
Gram
atica: Es un formalismo usado para definir lenguajes mediante la
generacion de las palabras. Esta forma de especificacion es aplicable para los
lenguajes finitos e infinitos.

Reconocedor: Es una especificaci


on finita de dispositivos de aceptacion o
rechazo de palabras. El metodo es aplicable para la especificacion formal de
los lenguajes finitos e infinitos.

Enumerador: Encargado de relacionar todas las palabras que pertenecen a


un lenguaje particular a ser especificada. Es usado para la especificacion de
lenguajes finitos y no muy extensos.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

23 / 26

Equivalencias
Una gramatica es equivalente a un reconocedor, si se cumple:
(a) Toda palabra generada por la gramatica tambien es aceptada por el
generador.
(b) Toda palabra aceptada por el reconocedor tambien es generada por la
gramatica.
Ejemplo:
Sean la gramatica G y reconocedor M dada por los lenguajes definidos por
= {a, b}:
G: L1 (G ) donde el primer smbolo de la palabra w es a.
M: L2 (M) donde el primer smbolo de la palabra w es a y el u
ltimo b.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

24 / 26

Por lo tanto:
L1 (G ) = {a, aa, ab, aaa, aab, aba, abb, . . .}
L2 (M) = {ab, aab, abb, aaab, aabb, abab, abbb, . . .}
Notamos que la condici
on (b) se verifica, pero (a) no. Es decir ab L2 y ab L1 .
Por otro lado, aba L1 , sin embargo aba
/ L2 . Luego L1 L2 , es decir no son
equivalentes.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

25 / 26

Metalenguaje

Las gramaticas y los reconocedores son dos formas duales para representar a
los lenguajes, es decir, para cada gramatica es posible obtener un
reconocedor que acepte el lenguaje y viceversa.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

26 / 26

Metalenguaje

Las gramaticas y los reconocedores son dos formas duales para representar a
los lenguajes, es decir, para cada gramatica es posible obtener un
reconocedor que acepte el lenguaje y viceversa.

Una particular notaci


on usada para representar un lenguaje, sea mediante
gramaticas o reconocedores, es llamada metalenguaje.

Jos
e A. Rodrguez Melquiades

Lenguajes Formales y Aut


omatas

24 de agosto de 2015

26 / 26