Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semántica: significado
Sintaxis: reglas gramaticales.
Naturales
Ejemplos: Lenguaje de humanos:
chino, español, inglés.
y
Letra o
Caracter
Lenguajes
Cadena o
Formales palabra
Autómatas
Un alfabeto es un conjunto no vacío y finito de símbolos.
Concatenación
w0 = , w1 = w wk = w.wk-1 k 2
long(wk) = k long(w)
wV* (wR)R = w
R=
w,z V* (wz)R = zR wR
Sea V={a, o,c,p}, |V|=4, | V* | no es finito
a es un símbolo de V, p es un símbolo de V
coco ; ca ; opaco ; son palabras de V*
long(coco) = 4 ; long(ca) = 2 ; long(opaco) = 5
long() = 0
(opaco)R= ocapo (coco)2= cocococo
Long((ca)3)=3.lon(ca)=3.2=6
(ca)(coco)=cacoco≠(coco)(ca)=cococa
(opaco)=opaco, (coco)(ca)=cococa
Sea V un alfabeto, llamamos lenguaje L a
todo subconjunto de V*: LV*
L = {} = Λ es el lenguaje NULO, |Λ| = 1
Intersección
Dados dos lenguajes L1 y L2, su intersección L1 L2
contendrá todas las palabras que pertenezcan a los dos lenguajes;
L1 L2 = { x tal que x ε L1 x ε L2 }
Resta
Si L1 y L2 son lenguajes la resta de L1 y L2: L1 - L2, contendrá
todas las palabras que pertenezcan a L1 y no pertenezcan a L2 ,
L1 - L2 = { x tal que x L1 x L2 }
Potenciación
La potencia i-ésima de un lenguaje corresponde a la
concatenación i veces del lenguaje en él mismo:
L0 = {} = Λ , L1 = L Lk = L.Lk-1 k 2
Clausura de Kleene
Sea V un alfabeto, sea N el conjunto de los números naturales, sea n
ε N U {0} y sea L un lenguaje de V* entonces:
n
n 0
Clausura Positiva
Sea V un alfabeto, sea N el conjunto de los números naturales,
sea n ε N y sea L un lenguaje de V* entonces:
L+ = L¹ U L² U L³ U....U Ln U… es la clausura de positiva
del lenguaje L.
L Ln
n 1
L = {} = Λ es el lenguaje NULO:
Λ* = Λ0Λ…Λn….= {}0 {} … {}n …=
={} {} … {} …= {} = Λ
Λ+ = Λ…Λn….= {} … {}n …= {} = Λ
L = es el lenguaje VACÍO:
* = 0 … n …= {} … …= {} =Λ
+ = … n …= … …=
Λ* = Λ + = Λ
* = Λ y + =
Complemento
L {x V * / x L} V * L
{x V * / x } V *
{x V * / x } V *
Dados los lenguajes L1={1010; 0101; }, L2={00; 10} y L3={}
se pide:
1. Indique si las palabras 1010000101, 010101010101 y 00
pertenecen al lenguaje L1RL2L1
2. Indique la longitud de las palabras con el mayor y el menor
número de letras de L23L12
3. ¿Qué condiciones debe tener un lenguaje L para que L*-
{}=L+
Considere al alfabeto V={0, 1} y
el lenguaje L = {02n+1 / 1 n 4}, se pide
1. Todas las palabras del lenguaje L
2. El lenguaje inverso del lenguaje L
3. L.LT
4. Indicar si L y/o LT son cerrados para la concatenación.
Lenguaje regular
EXPRESIÓN REGULAR LENGUAJE
REGULAR
a L={a}
L={}
ab L={a, b}
aba L={a, ba}
baa L={a, ba}
ab | = ab L={, ab}
a(ab) L={aa, ab}
abbaab = a(bbab) = a(ba)b L={abb, aab}
aa+ab+ba+bb = L={aa, ab,ba,bb}
a(ab)b(ab)=(ab) (ab)=(ab)2
EXPRESIÓN REGULAR LENGUAJE REGULAR
a* L={an / n0}
a.a*=a+ L={an / n1}
L={todas las palabras de 5
(ab)5
caracteres sobre el alfabeto {a,b}}
aba L={a, ba}
ab* L={abn / n0}
ab+ L={abn / n1}
a*b* L={arbn / r0, n0}
(ab)* L={(ab)n / n0}
1 y 0 z
0 1 t
1 u
0
Libres de contexto
Genera lenguajes libres al contexto
Gramática Tipo II El lado izquierdo debe consistir en un sólo no terminal
No hay restricciones al lado derecho
Regulares
Genera lenguajes regulares
El lado izquierdo debe consistir en un sólo no terminal
Gramática Tipo III El lado derecho debe ser un terminal seguido de un
no terminal, o un sólo terminal o la cadena vacía
Gramática Tipo 0 x y
o NO RESTRINGIDA x (VnVt)+ y (VnVt)*
Gramática Tipo I
x y
O SENSIBLE AL
CONTEXTO x (VnVt)+ y (VnVt)*
long x |long y
x y
Gramática Tipo II x Vn y (VnVt)*
O INDEPENDIENTE DEL
CONTEXTO
x y
Gramática Tipo III x Vn y= t.n y = n.t y = t y=
O REGULAR
donde t es un símbolo terminal
y n es un símbolo no terminal.
G=({S,T}; {a, b, c};P;S) Gramática tipo 0
Donde P: S aSb
Sb bT L0={c; acb; aacbb; …}
abT c
G=({S,T,U,V,W}; {a, b, c};P;S)
Donde P: S a|Sb|UV Gramática tipo 1
aSb aTb
V a|b|c L1={a; aa;ab; ac; abb; aabb; abbb;
U a acbb;…}
Wb
G=({S,T,U}; {a, b};P;S)
Donde P: S UT|TU Gramática tipo 2
U a
T b L2={ab;ba}
G=({S,T,U}; {a, b};P;S)
Donde P: S bT|bU Gramática tipo 3
U Ta|
T |a L3={b; ba; baa}
Dependientes del contexto significa que se tiene en cuenta
lo que viene antes y después del símbolo que se sustituye.
G3 G2 G1 G0
DE LA GRAMÁTICA REGULAR AL
LENGUAJE REGULAR:
Cada No Terminal y sus producciones generan una ecuación:
M M | le corresponde la ecuación: M = M
Ejemplo:
Sea G=({S,T}; {a,b}; P, S) donde P: SaS|aT; Tb
Las producciones se traducen en las ecuaciones:
SaS|aT S = aS aT
Tb T=b
Se resuelven sustituyendo:
S = aS ab = a*ab = a+b
L(G) = {anb, n 1}
Probar que la concatenación en V* es un semigrupo.
Sean x = x1 x2 x3 ... xn V* y t = t1 t2 t3 ... tr V* entonces:
x.t = x1 x2 x3 ... xn t1 t2 t3 ... tr V* luego
V* x V* V*, es decir que x V*, y V* x.y V*, de donde se dice que la
concatenación es cerrada y binaria en V* (1)
Sean x V* y y V*, z V*, tales que:
x = x1 x2 x3 .... xm V*
y = y1 y2 ....yn V*
z = z1 z2 .....zt V*, entonces
x.(y.z) 0 (x1 x2 x3 .... xm).[y1 .... ym z1 .... zt] =
= x1 x2 x3 .... xm y1 ... yn z1 ... zt =
= (x1 x2 x3 .... xm y1 ... yn).( z1 ... zt) =
= (x.y).z, entonces la concatenación es asociativa (2)
La palabra nula λ es un elemento de V* y para cualquier x de V* con x = x1 x2 .... xm se verifica
λ .x = λ x1 x2 ... xmλ = x. λ = x de donde la palabra nula λ es el elemento neutro (3)
Por (1), (2) y (3) queda demostrado que V* bajo la concatenación es un semigrupo con neutro.
Probar utilizando inducción matemática en n, que: long wn = n long w.
Equivalentes
Genera
Lenguajes Autómatas
Regulares Finitos
Reconoce
Lenguajes Regulares
Verdadero: c*aacd*
a
Ej: a * 0 1 NO reconoce
* a b a
Ej: abab 0 1 2 ?? NO reconoce
a 0 = a1 2 = a1 2
* 0 1
1= 0 = a = a
2 2=
a
b 0 = a0 b1
* 0 1 0 = a 0 (b1 )
1= 0 = a*(b )
AUTÓMATAS FINITOS QUE RECONOCEN
LENGUAJES REGULARES INFINITOS
a* L = {an / n 0} a
*
q
a
a*b L = {b, ab, aab, …} *
b
q q1
AUTÓMATAS FINITOS QUE RECONOCEN
LENGUAJES REGULARES INFINITOS
a
(ab)*
* q q1
(ab)+
b
a
* q q1 q2
a
Autómatas Finitos Determinísticos
Autómatas Diferencia
Entre ambos
A = (Q; V; ; q; F) con = Q x V Q
Un autómata finito es un modelo matemático de un sistema que determina para
cada cadena del alfabeto V si pertenece al lenguaje que el autómata reconoce.
Es una máquina de estado finito, que se define como:
0 1
* 0
q q1
1
Para cualquier estado, la lectura de una letra determina, sin
ambigüedades, el estado de llegada.
Para todo (q, a) Q x V (q, a) = p si y sólo si la máquina puede
pasar del estado q al estado p al “leer” el símbolo a.
Para cada estado en un diagrama de transición debe existir a lo sumo
una arista etiquetada para cada letra del alfabeto V.
Un A.F.D. es completo si cada estado tiene una transición por cada
letra del alfabeto.
Ninguna arista está etiquetada con .
La relación de transición es una función.
Un A.F.D. Es completo si cada estado tiene una transición por cada
letra del alfabeto.
Expresiones Regulares
Observación:
Asociado a cada expresión regular sobre el alfabeto A hay un subconjunto de
A*, que se llama subconjunto o lenguaje regular.
Autómatas Finitos No Determinísticos
0 1
*
q q1 q2 1 q3
1
Autómatas Finitos Autómatas Finitos
Determinísticos Diferencia No Determinísticos
a
* 0 1
b
c a
2 3
a
Sea el alfabeto V={a, b, c}:
a) Halle todas las palabras wV4 tales que w = wR.
b) Diseñe un autómata finito que reconozca el lenguaje formado
por las palabras de V* que comienzan con “a” y tienen un
número par de letras “c”.
a) Son 9: aaaa, abba, acca, baab, bbbb, bccb, caac, cbbc, cccc
b
a c b
b) * 0 1 2
c
a
a
Dar el valor de verdad:
No es posible diseñar un autómata finito que reconozca
palabras de un lenguaje no finito, sobre el alfabeto A={0, 1, 2}
que tengan un número impar de 0 y que comiencen con 2.
FALSO 2 2
2 0
* A B C
0
1
1
Considere el siguiente diagrama de transiciones de un
autómata finito: