Está en la página 1de 41

Lenguajes Formales

y Autómatas

Ing. Lucila Patricia


ArellanoMendoza
2019
OBJETIVO

Proporcionar al alumno la teoría para el diseño de


lenguajes, así como los aspectos formales de la teoría
de lenguajes.
Introducción y Conceptos
Definiciones Básicas.

Conjunto: Es una colección de objetos llamados


caracteres, elementos o símbolos.

Operaciones con conjuntos:

Unión AUB = {x/x  A o x  B}


Intersección AB = { x/x  A y x  B}
Diferencia A-B = {x/x  A y x  B}
Conjunto Potencia

2A = {B/ B  A} conjunto formado por todos los


subconjuntos de A

Producto Cartesiano

AxB = {(a,b) / a  A y b  B}
Símbolos

 Letras (a, b, c, ..,z)


 Dígitos (0..9)
 Caracteres (+,-,*,/,?,..)
 Letras o caracteres (las palabras reservadas de un
lenguaje de programación)

 Ejemplos: a, #,1,+,then, else


Alfabeto: Es un conjunto finito no vacío de símbolos.
Los elementos de un alfabeto se llaman letras o símbolos

Utilizaremos el símbolo  para representar a un


alfabeto.

Ejemplos:

 1 = {a,b…,z} alfabeto español


 2 = {a,b} alfabeto que contiene sólo 2 símbolos
 3 = {0,1} alfabeto de los números binarios
Cadena, cuerda o string: Concatenación o
yuxtaposición de elementos o símbolos de un
determinado alfabeto. La representaremos como w.

Palabra: Es una cadena finita de símbolos


pertenecientes a un alfabeto.

Dado un alfabeto  y un número natural n, Una


secuencia de símbolos a1a2...an es una Palabra sobre el
alfabeto  de largo n si y sólo si para cada i=1,2,...,n,
ai  .
Ejemplos de palabras:

Sobre el alfabeto

 1 son casa, niño, coche

 2 son ab, ba, aba, bba

 3 son 01,11,110
Longitud de una Palabra: Dado un alfabeto  y una
cadena x= a1a2...an sobre , x (módulo de x) denota
la longitud de x, esto es: a1a2...an = n.

Ejemplo:

Dado el alfabeto  = {a,b} y la palabra x=aab, entonces


x=3.
Cadena vacía

Es una cadena que no tiene símbolos y se denota con 

Su longitud es  = 0, pues  tiene cero símbolos.


El conjunto de todas las palabras que se pueden
construir con letras del alfabeto  se llama lenguaje
universal de .

Se representa como * que es un conjunto infinito


Operaciones con Cadenas
 Concatenación

Dados x= a1a2...an y z= b1b2...bm ,

xz = a1a2...anb1b2...bm

xz= x+z= n + m

x= x = x

( es el elemento identidad en la concatenación)


 Potencia

Sea w una palabra, n  IN, se define


, si n=0
wn =
wwn-1, si n > 0

Ejemplo: Si w = aba   = {a,b}


w0 = 
w1 = aba
w2 = abaaba
w3 = abaabaaba
 Igualdad entre Cadenas

Dadas 2 palabras w y z  , se dice que son iguales si


tienen la misma longitud y los mismos símbolos en la
misma posición.

Formalmente:

Dadas las palabras w= a1a2...an y z= b1b2...bm  , se


dice que w = z si y sólo si n = m y ai = bi para cada
i=1,2,...,n.
Lenguaje: Un lenguaje es un conjunto de palabras
formadas a partir de un alfabeto.

Ejemplo:
 L = {1, 12, 1234, 14, 13}, es un lenguaje sobre el
alfabeto  = {0,1,2, ..., 9}

 Si  es un alfabeto, también es un lenguaje, el formado


por todas las cadenas con un único símbolo.
 Dado que un lenguaje es un conjunto de cadenas, se
puede tener el lenguaje compuesto por ninguna
cadena, el lenguaje vacío, y que se denota por .

 Éste no es el mismo lenguaje que el que consta sólo de


la cadena vacía, {}.
Operaciones con Lenguajes
Concatenación

AB = { wx  w  A y x  B}

Esto es, L esta formado por todas las cadenas que se


forman concatenando cada cadena de A con todas las
cadenas de B.
Ejemplo:

Si A = {ab} y B = {cd, ef}, entonces

L = AB = {abcd, abef}

Si A es un lenguaje sobre 1 y B es un lenguaje sobre


2, entonces L = AB será un lenguaje sobre 1  2
Lenguaje potencia, está dado por:

{}, si n = 0
An =
AAn-1, si n > 0
Ejemplo:

Si A = {ab} sobre el alfabeto, entonces se tiene que:

A0 = {}
A1 = A = {ab}
A2 = AA1 = {abab}
A3 = AA2 = {ababab}
...
La unión e intersección

A  B = {x  x  A o x  B} (Unión)

A  B = {x  x  A y x B} (Intersección)
Ejemplos:
Considerando el alfabeto  = {0,1} y los lenguajes

A = {,0,1,011,11010} y B = {0,1,101,111}

A  B = {,0,1,011,11010, 101,111}

A  B = { 0,1}
Sublenguaje

Si A y B son lenguajes sobre un alfabeto  y si todas las


cadenas de A son también cadenas de B, entonces se
dice que A es un sublenguaje de B.

AB
Ejemplo:

AB
A={a, aa, aaa, aaaa} y B={an | n=0,1,2,..}

Cualquier lenguaje L sobre el alfabeto  es un


sublenguaje de *, es decir L  *.
Teorema 1: Sean A y B dos lenguajes sobre el alfabeto
. Entonces A = B si y sólo si AB y BA.

Teorema 2: Dados los lenguajes A, B y C sobre un


alfabeto , se cumple:

A(B  C) = AB  AC
(B  C)A = BA  CA
Cerradura de Kleene o Cerradura de Estrella

Sea A un lenguaje sobre algún alfabeto , se define:

A* = {A0 A1 A2… An } Transitiva y reflexiva


A+ = {A1 A2…. An } Transitiva
Ejemplo:
Sea A = {a} sobre el alfabeto español, entonces:

A0 = {} , A1 = {a} , A2 = {a2}, ....

A* = {, a, a2, a3, ...}

A+ = {a, a2, a3, ...}


Gramáticas y Lenguajes
Una gramática G de un lenguaje dado L es un conjunto
finito de reglas que describen toda la secuencia de
símbolos pertenecientes al lenguaje.
Una gramática es una estructura algebraica formada
por cuatro elementos fundamentales.

G = {NT, T, S, P}
 NT es el conjunto de elementos no terminales o
categorías de la gramática (formado por todas las letras
en mayúscula).
 T es el conjunto de elementos terminales o alfabeto de
la gramática (formado por todas las letras minúsculas,
símbolos y la cadena vacía).
 S es el símbolo inicial de la gramática y pertenece a los
NT
 P es el conjunto de reglas de producción o derivaciones
que nos da la gramática
Regla de Producción:

Son reglas que se aplican a partir del símbolo inicial


para obtener las cadenas del lenguaje.

X  Y

Antecedente Produce Consecuente


ó deriva
Forma Sentencial

Es una cuerda obtenida en cero una o más derivaciones


a partir del símbolo inicial de la gramática.

Si se tienen sólo elementos terminales, se le llama


sentencia, en caso contrario se le llama forma
sentencial.
Lenguaje Formal

Un lenguaje generado por una gramática se define


como todas las cadenas que se derivan en cero, uno o
más pasos a partir del símbolo inicial.

L(G)= {x| x  (T)*, S =>* x}


Clasificación de las gramáticas según Chomsky

Tipo 0 No restringida o con estructura de frase


Tipo 1 Contexto sensitivo
Tipo 2 Contexto libre
Tipo 3 Contexto regular o Lineal
Tipo 0

XY

Donde
X  (NT  T)+
Y  (NT  T)*
Tipo 1

α β

Donde
|α|≤|β|
α = z1X z2 X  NT ; Y  (NT  T)+
β = z1Y z2 z1, z2  T*
Tipo 2

XY

Donde

X  NT ; | X | = 1
Y  (NT  T)*
Tipo 3

α β

Donde
α  NT ; | α | =1

aB ; B  NT
β Ba ; a  T+
b ; b  T*
 Ejercicio 1. Clasifique las siguientes reglas según la(s)
gramática(s) que corresponda.

1. S → abAS
2. aA → baa
3. DA → CdF
4. T → a+b
5. Sa → bC
6. CD → SAfg
7. B → aBB
8. E → E+T
9. T → aTB
10. CB → Bca
Lenguajes reconocidos por autómatas
 No restringido reconocido por Máquina de Turing
 Contexto sensitivo reconocido por autómatas ligados
linealmente
 Contexto Libre reconocidos por autómatas de pila o
push down
 Regulares reconocidos por autómatas finitos
Teoría de Autómatas - Lenguajes Formales
(Gramáticas Formales - Máquinas abstractas )

Gramática Máquina
equivale

describe reconoce
genera genera

Lenguajes

También podría gustarte