Está en la página 1de 22

Strings, Alfabetos y Lenguajes

Un Smbolo es una entidad abstracta que no necesitamos definir formalmente, como por ejemplo una
letra del alfabeto o un dgito.

Alfabeto : Cualquier conjunto finito de smbolos. Se designa por

String (cadena, palabra) : es una secuencia finita de smbolos yuxtapuestos.


Por ejemplo:

a,b,c Smbolos
Abbca String
If (a=b) or (b=c) then i:=i+1; es una palabra PASCAL

El tamao de un String wdenotado por |w| es el nmero de smbolos que componen el string.
Por ejemplo |abbca| = 5

El String vaco, denotado por es elstring que contiene 0 smbolos. As |=0

Una cadena de "i" smbolos "a" se denota por ai


Por ejemplo:

a0
a1 a
2
a aa
a3 aaa
Etc...

Definicin. Se definen strings sobre un alfabeto como:


a) es un string sobre
b)Si x es un string sobre y a entonces xa es un string sobre
c) y es string sobre ssi es obtenido mediante los pasos (a) y (b)

Substrings: Sean x,y,z, w= xyz strings arbitrarios sobre un alfabeto . Se llama al string y (x,z)
substring del string xyz.

Un Prefijo de un string es cualquier substring del comienzo de ese string; y un sufijo de un string es
un substring del final de ese string.

Por ejemplo : El string abc tiene

1
Prefijos ,a,ab,abc
Sufijos ,c,bc,abc

Si el prefijo (sufijo) de un string es distinto del string mismo, el prefijo (sufijo) se denomina prefijo
(sufijo) propio del string.
Observacin: es substring, prefijo y sufijo de cualquier string.

Concatenacin de 2 strings es el string formado por yuxtaposicin de strings escribiendo el primero


seguido por el segundo sin espacios intermedios.
Por ejemplo: Sean x = abre, y = lata; entonces xy = abrelata que es distinto de yx = lataabre.
es la identidad del operador de concatenacin, luego: x, x = x = x.

El reverso de un string x, denotado por xR ,es el string x escrito en orden inverso:

x xR
arroz zorra
radar radar
rio oir
Definicin : Un lenguaje sobre un alfabeto es un conjunto de strings sobre
Definicin : * denota al conjunto que contiene todos los strings sobre , inclusive .
Por ejemplo:
= {0,1}
* = {,0,1,00,01,10,11,000,...}
Todo lenguaje L sobre es un subconjunto de *. Bajo concatenacin () * es un monoide (*,,)

Introduccin a las Mquinas de Estados Finitos

Las mquinas de estado finito son modelos matemticos que actan sobre el problema de
transformacin de cadenas de smbolos: dada una sucesin de smbolos x, transformarla en la sucesin
y de una forma mecnica.

Este problema es una abstraccin de muchos problemas comunes. Por ejemplo, el problema de
sumar dos nmeros a y b puede considerarse como el problema de transformar la sucesin de
smbolos "a+b" en una sucesin "c" que represente la suma de a y b.

En situaciones para resolver problemas, la entrada a la mquina son las acciones que deben
realizarse y los estados son los resultados intermedios.

El uso ms comn que se les da en Ciencias de Computacin es en el mbito de algoritmos de


decisin, esto es dado un conjunto de strings con ciertas caractersticas, la mquina decide si un string
pertenece o no a ese conjunto. Los estados determinan la forma de relacionar los smbolos del string. A
ese tipo de mquinas las llamamos "reconocedores". Son usadas en el proceso de anlisis lxico y
sintctico.

2
Mquinas de Estados Finitos
Para Resolver Problemas:

1.-Si no se conoce un mtodo para resolver un problema dado, debe haber una comprensin ms o
menos completa del problema para que podamos llegar a una solucin.

2.-Si se conoce un "buen" mtodo para resolver un problema entonces no es necesario comprender el
problema. Por ejemplo un empleado puede llevar las cuentas de una firma comercial sin necesidad de
entender las finanzas de la firma, si sabe exactamente lo que debe hacer. Luego en esta situacin es
necesario especificar exactamente el mtodo de solucin en un lenguaje comprensible para una
mquina.

Podramos decir que lo que nos interesa es una transformacin de las entradas en salidas.

x f(x)=y y

Sistemas de Estados Finitos

Un autmata finito es un modelo matemtico de un sistema con entradas y salidas discretas. El


sistema puede ser cualquiera que tenga un nmero finito de configuraciones internas o "estados". Un
ascensor : Este mecanismo no recuerda los requerimientos previos de servicio , sino slo sabe en qu
piso est actualmente, si debe subir o bajar y un conjunto de requerimientos de servicios no satisfechos.

Aplicaciones

- Diseo de circuitos electrnicos.


- Editores de texto.
- Analizadores lxicos en el proceso de compilacin.
- Reconocimiento de patrones.

Ejemplo: Jarros de Agua

Representacin : (J1,J2), donde J1,J2 : enteros no negativos.

Situacin inicial : (0,0), Situacin final (2,x) o (y,2) donde 0 <= x <= 4 o 0 <= y <= 3 en cada caso.

Funciones Permitidas :Llenar J1, Llenar J2, Vaciar J1, Vaciar J2, Trasvasijar J1-J2, Transvasijar J2-
J1.

Restricciones : J1<=3 , J2 <= 4

Relaciones : Lleno J1, Lleno J2, Vaco J1, Vaco J2.

3
Si lleno J1 entonces no se puede Trasvasijar J2-J1
Si vaco J2 entonces no se puede Trasvasijar J2-J1
Si lleno J2 entonces no se puede Trasvasijar J1-J2
Si vaco J1 entonces no se puede Trasvasijar J1-J2

Si lleno J1 entonces no se puede llenar J1


Si lleno J2 entonces no se puede llenar J2
Si vaco J1 entonces no se puede vaciar J1
Si vaco J2 entonces no se puede vaciar J2

[FALTA IMAGEN]

Lenguaje aceptado por el AF:

Ej: {LL1 LL2 V1 T21 V1 T21 LL2 T21}

Es decir, el lenguaje aceptado por el AF son todos los posibles recorridos desde el estado inicial
hasta un estado final. Cada una de estas palabras representa la composicin de funciones que nos llevan
a una solucin, incluyendo palabras infinitas. Si sustituimos ahora.

(0,0) por q0 (3,0) por q1 (0,4) por q2 (3,4) por q3 (0,3) por q4
(3,1) por q5 (3,3) por q6 (0,1) por q7 (2,4) por q8 (1,0) por q9
(1,4= por q10 (3,2) por q11

La definicin del AF que nos lleva a una solucin sera.

Q = { q0 q1 q2 q3q4 q5 q6 q7 q8 q9 q10 q11}

= {LL1,LL2,V1,V2,T12,T21}

F = {q8,q11}

LL1 LL2 V1 V2 T12 T21


q0 q1 q2 - - - -
q1 - q3 q0 - q4 -
q2 q3 - - q0 - q5
q3 - - q2 q1 - -
q4 q6 q2 - q0 - q1
q5 - q3 q7 q1 q2 -
q6 - q3 q4 q1 q8 -
q7 q1 q2 - q0 - q9

4
q8 - - - - - -
q9 q1 q10 q0 - q7 -
q10 q3 - q2 q9 - q11
q11 - - - - - -

Autmatas Finitos

Definicin: Un autmata finito es una estructura algebraica A = <Q,,q0,F> donde

Q : Conjunto finito de estados.


: alfabeto finito de entrada.
funcin de transicin QxP(Q)
q0 : estado inicial, qo Q
F : Conjunto de estados finales F Q

Ejemplos:

(1) Disee un AF para reconocer expresiones aritmticas de longitud arbitraria que comprenden
enteros positivos separados por los signos de suma, resta, multiplicacin o divisin.

Q = {0,1}
={0,1,2,3,4,5,6,7,8,9,+,-, ,:}
q0 = {0}
F = {1}

(0,1+27:3-2) |--- (1,+27:3-2) |--- (0,27:3-2) |--- (1,7:3-2) |--- (1,:3-2) |--- (0,3-2) |--- (1,-2) |--- (0,2) |---
(1,)

5
(2) A = <Q,,q0,F >
Q = {0,1,2,3}
={a,b}
F = {3}
qo = {0}

A b
0 {0,1} {0,2}
1 {1,3} {1}
2 {2} {2,3}
3 - -

Autmatas Finitos Determinsticos


Definicin: A es determinstico si (q,a) no tiene ms de un elemento qQ y aSi(q,a) tiene
siempre exactamente un elemento A esta completamente especificado.

Teorema : Si L = L(A) para un AFND, A = <Q,,q0,F> entonces L = L(A') para un AFD, A'. Se
define un AFD A' = <Q',',q0',F'> como sigue:

Q'=P(Q) (|Q'|=2|Q|)
q0 = [q0]
F' = {B Q'/ BF} (Todos los estados que contienen algn estado final)
'([q1,...,qi],a) = [p1,...,pj] ssi ({q1,...,qi},a) = {p1,...,pj}

Osea ' aplicado a un elemento q' Q se calcula aplicando a cada estado de Q' representado por q'
= [q1,...,qi].
Al aplicar ' a cada q1,...,qi y tomando la unin, se obtienen nuevos conjuntos de estados p1,...,pj.
Este nuevo conjunto tiene un representante [p1,...,pj]Q' y ese elemento es el valor de '([q1,...,qi],a).

6
Ejemplo: Tomando el AFND anterior

Q = {0,1,2,3}
={a,b}
F = {3}
qo = {0}

a b
0 {0,1} {0,2}
1 {1,3} {1}
2 {2} {2,3}
3 - -

Q' = {[0],[1],[2],[3],[01],[02],[03],[12],[13],[23],[012],[013],[023],[123],[0123]}
q0' = [0]
F' = {[3],[03],[13],[23],[013],[023],[123],[0123]}

a B
[0] [01] [02]
[1] [13] [1]
[2] [2] [23]
[3] - -
[01] [013] [012]
[02] [012] [023]
[03] [01] [02]
[12] [123] [123]
[13] [13] [1]
[23] [2] [23]
[012] [0123] [0123]
[013] [013] [012]
[023] [012] [023]
[123] [123] [123]
[0123] [0123] [0123]

7
Reemplazando:
[0] por q0
[01] por q1
[02] por q2
[013] por q3
[012] por q4
[023] por q5
y [0123] por q6

Ejemplo :
i)
(q0,aababaa) |--- (q1,ababaa) |--- (q3,babaa) |--- (q4,abaa)) |--- (q6,baa) |--- (q6,aa) |--- (q6,a) |--- (q6,)
ii)
(q0,bba) |--- (q2,ba) |--- (q5,a) |--- (q4,)

8
Autmatas con Pila

Un autmata con pila es un dispositivo, en general, no determinstico. Esencialmente es un AF con


un control que controla tanto la cinta de entrada como una memoria con estructura de pila.

Formalmente un AP tiene:
- un control finito
- una cinta de entrada
- una pila

Ejemplo: [FALTA EJEMPLO]

La pila es un string de smbolos sobre algn alfabeto. El smbolo de ms a la izquierda es


considerado el tope de la pila.
El dispositivo ser no determinstico, al tener algn nmero finito de posibilidades de movimiento,
en cada situacin.
Los movimientos sern de dos tipos:

1.Lee un smbolo de la entrada, dependiendo de este smbolo, del tope de la pila y del estado del
control, tiene un nmero de elecciones posibles. Cada eleccin consiste de un nuevo estado para el
control (posiblemente el mismo) y un string de smbolos (posiblemente vaco) para reemplazar el
smbolo del tope de la pila. Despus de hacer la seleccin la cabeza lectora avanza un smbolo.

2.Es similar al 1&ordm; (llamado -move) excepto que el smbolo de entrada no es usado, por lo tanto
la cabeza lectora no avanza. este tipo de movimiento permite que el AP manipule la pila sin leer
smbolos de la entrada.

Lenguaje aceptado por un AP:

1.Es aquel formado por el conjunto de entradas para las cuales una secuencia de movimientos llega a
pila vaca (despus de haber ledo la entrada completa). Son referenciados como lenguajes aceptados
por pila vaca.

9
2.Similar al AF, esto es se designan estados finales y la palabra es aceptada cuando al ser leda
completamente, el AP llega a un estado final.

Un AP, P es una estructura <Q,,q0,zo,F> donde:

Q: conjunto finito de estados


: alfabeto finito de entrada
: alfabeto finito de la pila
: funcin de transicin Q x ( {}) x Q x
q0 : estado inicial q0 Q
z0 : smbolo inicial de la pila (base) z0
F : conjunto de estados finales (posiblemente vaco) F Q

Interpretaciones
(q,a,z) ={(p1,1),(p2,2),...,(pm,m)}

q y pi son estados, a z i

Si el control est en q con smbolos a de entrada y z en el tope de la pila, el AP se mueve a pi y el


smbolo z del tope de la pila es reemplazado por el string i y la cabeza lectora avanza un smbolo (lee).

(q,,z) ={(p1,1),(p2,2),...,(pm,m)}

Si el control est en estado q, independientemente del smbolo de entrada, el smbolo z del tope de la
pila es sustituido por el string i y el estado cambia a pi; pero es este caso no lee ningn smbolo de la
entrada.

Autmatas con Pila Determinstico

Decimos que un AP, P = <Q,,q0,zo,F es determinstico si:

1) q Q y z ,toda vez que (q,,z) no es vaco, entonces (q,a,z) es vaco a y


2) para ningn q Q z , y a U {}, (q,a,z) contiene ms de un elemento.

Para los AP no hay un teorema como para los AF que diga que L = L(A) y A no determinstico,
entonces L = L(A') y A' determinstico.

Por ejemplo para L = {wwr / w } no existe un AP determinstico.

10
Mquinas de Turing
La MT es un modelo matemtico simple de un computador. A pesar de su simplicidad, modela la
capacidad de computacin (clculo) de un computador de propsito general.

La MT es estudiada tanto para la clase de lenguajes que ella define (llamados conjuntos
recursivamente numerables) como la clase de funciones enteras que computa (llamadas funciones
recursivas parciales). Es un procedimiento efectivo.

No se puede probar que el modelo de MT es equivalente a nuestra nocin de un computador, pero


hay argumentos para esta equivalencia, que son conocidos como la "hipotesis de Church".

En particular la MT es equivalente en potencia computacional a los computadores digitales como los


conocemos actualmente.

Un modelo formal para un procedimiento efectivo debera poseer ciertas propiedades:

1. Cada procedimiento debe tener una descripcin finita.


2. El procedimiento debe consistir de pasos discretos, cada uno de los cuales debe ser realizado
mecnicamente.

Un modelo de este tipo fue introducido por Alan Turing en 1936.

La MT tiene un control finito, con una cabeza lectora-escritora y una cinta de entrada, que es infinita
tanto por la izquierda como por la derecha. Sobre sta el control lee y escribe, adems puede moverse
en ambos sentidos

En un movimiento de la MT, dependiendo del smbolo examinado y el estado del control:

1.- Cambia de estado.


2.- Imprime un smbolo, reemplazando al examinado
3.- Mueve la cabeza un smbolo a la izquierda o a la derecha.

11
Definicin: Una MT, T es denotada por <Q,,q0,b,F> donde:

Q: conjunto finito de estados


: alfabeto finito de entrada b , Q
: alfabeto finito de la cinta
: funcin de transicin Q x Q x x {I,D}
q0 : estado inicial q0 Q
b : smbolo blancob
F : conjunto de estados finales (posiblemente vaco) F Q

Definicin: Una configuracin de la MT, T es denotada por una Tripla (1,q,2) donde:
q Q es el estado actual
1 es el string que est a la izquierda de la cabeza y
2 es el string que est a la derecha de la cabeza, el smbolo examinado es el que est a la
izquierda de2

Si 1, 2 = la cabeza est examinando un blanco.

Definicin: sea (X1 X2...Xi-1,q,xi...Xn) una configuracin y supngase (q,Xi) = (p,Y,I) entonces :

(X1 X2 ... Xi-1,q,Xi...Xn) |--- (X1 X2 ... Xi-2,p,Xi-1 Y Xi+1 ...Xn)

Observacin : Si cualquier sufijo o prefijo de Xi-1 Y Xi+1... Xn es blanco, no aparece en la


configuracin.

Alternativamente, supngase (q,Xi) = (p,Y,D) entonces

(X1 X2 ... Xi-1,q,Xi...Xn) |--- (X1 X2 ... Xi-1 Y,p, Xi+1 ...Xn)

pero note que si i-1=n, entonces el string Xi...Xn est vaco.

Definicin: El lenguaje aceptado por T, denotado por L(T), es el conjunto de strings en * tal que
cuando la mquina para, el control est en un estado final.

L(T) = {w /w * y (qo,w) |--*-- (1,q,2), para algn p F y 1,2 *}

Dada una MT que reconoce un lenguaje L, asumimos que la MT para, i.e. no tiene movimientos,
cuando la entrada es aceptada. Sin embargo, para palabras no aceptadas, es posible que la mquina
nunca pare.

12
Gramticas
Una forma de definir un lenguaje es mediante un reconocedor que acepte las palabras que pertenecen
a l.
Otro mtodo para definirlos es mediante sistemas generativos llamados gramticas, donde cada
string del lenguaje puede construirse por pasos bien definidos, especificados por las reglas de la
gramtica.

Definicin : Una gramtica es un sistema para definir un lenguaje, como tambin una herramienta para
imponer a los strings del lenguaje una estructura til.

Una gramtica G es una cudrupla G = <N,,P,S> donde:


N : alfabeto de no-terminales n N n
: alfabeto terminal
P : Conjunto finito de producciones consistente de expresiones de la forma
con (N yb (N
S : smbolo inicial S N

Ejemplo:
P:
<frase> :: = <sujeto><predicado><punto> FSPL
<sujeto> :: = <sustantivo> S
<sustantivo> :: = mara | juan Nmara
Njuan
<predicado> :: = <verbo><objeto> PVO
<verbo> :: = quiere Vquiere
<objeto> :: = a <sustantivo> OaN
<punto> :: = . L.

N = {F, S, N, P, V, O, L}
= {alfabeto espaol}
S=F

Ejemplo:
P:
<real sin signo :: = <entero sin signo.<dgito{<dgito} | <entero sin signo.<dgito{<dgito}E<escala |
<entero sin signo E <escala
<escala ::= <estero sin signo | <signo<entero sin signo
<signo ::= + | -
<entero sin signo ::= <dgito {<dgito}
<dgito ::= 0 | 1 | ... | 8 | 9

13
N = {R,I,D,C,S}
= {0,1,...,8,9,+,-,E,}
S=R
P:
RI.I
RNI.IEC
ID
IDI
CI
CSI
S+
S-
Dd con d=0,1,...,8,9

que puede resumirse:


RI.I | NI.IEC
ID | DI
CI | SI
S+ | -
D

Ejemplo : 25.345

Ejemplo : 25.3E-18

14
Definicin : Forma sentencial
Sea G = <N,S,P,S> una gramtica
a)S es una forma sentencial
b)Si es una forma sentencial y P, entonces es tambin una forma sentencial.

Una forma sentencial que no contiene no-terminales se llama sentencia generada por G.

Definicin : El lenguaje generado por una gramtica G, denotado por L(G), es el conjunto de sentencias
generadas por G.

Definicin : Sea G=<N,S,P,S una gramtica. Se define la relacin "deriva directamente" denotado por
, sobre (N como:
, si (N y P

+
cierre transitivo
*
cierre reflexivo transitivo

k existe una secuencia 0, 1, ..., k de k+1 strings, o formas sentenciales, (no necesariamente
iguales) tales que

= 0, i -1i 1 <= i <= k y k =

Esta sucesin de formas sentenciales es llamada una derivacin de longitud k desde hasta .

El lenguaje generado por G, L(G) es

L(G) = {w / w *, S *w}

Ejemplo:

25.345
R I.I DI.I 2I.I 2D.I 25.I 25.DI 25.3I 25.3DI 25.34I 25.34D 25.345

15
25.3E-18
R I.IEC DI.IEC 2I.IEC 2D.IEC 25.IEC 25.DEC 25.3EC 25.3ESI 25.3E-I
25.3E-DI 25.3E-1I 25.3E-1D 25.3E-18

Tipos de Gramticas (Jerarqua de Chomsky)

Las gramticas pueden clasificarse segn el formato de sus producciones.

Definicin: Sea G = <N,,P,S> una gramtica.


Se dice que G es

de tipo 3 o gramtica regular si cada produccin en P es de la forma :

AaB
a
con A,B N, a
de tipo 2 o gramtica libre del contexto, si cada produccin en P s de la forma

A, A N, (N
de tipo 1 o gramtica sensible al contexto, si cada produccin en P es de la forma

con || = ||, (N
de tipo 0 o irrestricta, si no tiene restricciones

Si un lenguaje L puede ser generado por una gramtica de tipo X, entonces se llama a L un "lenguaje
de tipo X".
El lenguaje recibe el nombre del tipo de gramtica ms restringida capaz de generarlo.

16
Ejemplo: Gramtica regular

G1 = ({S,A,B},{0,1},P1,S)
P1 : S 0A | 1B | 0
A 0S | 1B
B 1B | 1 | 0

G2 = ({R,I,B,C,D,F,G,H},{+,-,d, E, },P2,R)
P2 : R +I | -I | dB
I dB
B dB | C
C d | dD
D d | dD | EF
F +G | -G | d | dH
G d | dH
H d | dH

Ejemplo: Gramtica libre del contexto


G3 = ({S,A,B},{0,1},P3,S)
P3 : S aB | bB
A a | aS | bAA
B b | bS | aBB

G4 = ({S},{0,1},P4,S)
P4 : S 0S1 | 01

G5 = ({S},{0,1},P5,S)
P5 : S 0S1 |

17
Ejemplo : Gramtica sensible al contexto
G6 = ({S,B,C},{a,b,c},P6,S)
P6 : S aSBC | abC
CB BC
bB bb
bC bc
cB Bc
cC cc

Derivaciones
G1:
S 0A 00S 001B 0011B 00110

G2:
R dB ddB dd.C dd.dD dd.dEF dd.dE-G dd.dE-dH dd.dE-dd

G3:
S bA bbAA bbaSA bbaaBA bbaabA bbaaba

G4:
S 0S1 00S11 000S111 00001111

G5:
S 0S1 00S11 0011

G6:
S aSBC aaSBCBC aaabCBCBC aaabcBCBC aaabBcCBC aaabbcCBC
aaabbccBC aaabbcBcC aaabbBccC aaabbbccC aaabbbccc

Gramticas Regulares
Teorema: Sea <N,,P,S> una gramtica regular, entonces existe un AFND, A = <Q,,q0,F> tal que
L(G) = L(A).

Prueba:
Q = N {T} T N, es decir, los estados de A son los no-terminales de G ms un estado T que no est
en N.

qo = S

F = Si S P entonces {S,T}
Si S P entonces {T}

18
S no debe aparecer al lado derecho de ninguna produccin si S P.

Si B a P entonces T B,a)
Si B aC P entonces C B,a), C N

,a) = a

El AFND, A que acepta un string w, simula la derivacin de w por la gramtica G.

Sea w = a1a2...an, n = 1

i)w L(G), probar que w L(A)

Si w L(G) entonces existe una derivacin:


S a1A1 a1a2A2 ... a1a2..an-1An-1 a1a2...an-1an
para alguna secuencia de no-terminales : A1,A2,...An-1

Por definicin de :
S a1A1 P implica A1 S,a1)
A1 a2A2 P implica A2 ,a2)
: : : : : : : : : : : :
An-1 an P implica T An-1,an)

luego w L(A) porque S,w) contiene a T y TF

(S,w) = (S,a1a2...an) |--- (A1,a2...an) |-*- (An-1,an) |--- (T,que es configuracin final.

SiL(G) entonces S F, luego L(A)


w L(G) implica w L(A), luego L(G) L(A)
ii) Si w L(A) |w| = 1 entonces existe una secuencia de estados:
S,A1,A2,...,An-1,T tal que

A1 S,a1)
A2 ,a2)
: : : : :
T n-1,an)

luego P contiene reglas del tipo (por definicin de )

S a1A1
A1 a2A2
: : : :
An-1 an

19
luego :
S a1A1 a1a2A2 ... a1a2..an-1An-1 a1a2...an-1an
es una derivacin en G y w L(G)

SiL(A) entonces S F, luego S P y L(G)


w L(A) implica w L(G), luego L(A) L(G)

Por lo tanto, por ( i ) y por ( ii ) L(A) = L(G)

Ejemplo:

G1 = ({S,A,B},{0,1},P1,S)
P1 : S 0A | 1B | 0
A 0S | 1B
B 1B | 1 | 0

entonces

A = ({S, A, B, T},{0,1}, ,S,{T})

0 1
S {A,T} {B}
A {S} {B}
B {T} {BT}
T - -

0 1

20
[S] [AT] [B]
[B] [T] [BT]
[AT] [S] [B]
[BT] [T] [BT]
[T] - -

Teorema: Sea A = <Q,,q0,F AFD, entonces existe una gramtica regular, tal que L(G) = L(A).

Prueba:
Defnase una gramtica regular G como sigue:
i) Si (B,a) = C entonces B aC P
ii) Si (B,a) = C y C F entonces B a P

Sea w=a1a2...an w L(A)

(qo,a1a2...an) |--- (q1,a2...an), (qo,a1)=q1, qo a1q1


|--- (q2,a3...an), (q1,a2)=q2, q1 a2q2
: : : : : : : : : : : : :
|--- (qn,), (qn-1,an)=qn, qn F : qn-1 anqn
qn-1 an

qo a1q1 a1a2q2 ... a1...an-1qn-1 a1a2...an-1an = w


w L(A) implica w L(G), luego L(A) L(G)

en sentido inverso, similar al teorema anterior

Luego L(A) = L(G)

Ejemplo: [imagen]
G = <N,,P,S >

21
N = {[S],[AT],[AS],[AST],[B],[BT]}
= {0,1}
S = [S]
P:
[S] 0[AT] | 0 | 1[B]
[AT] 0[S] | 1[B]
[B] 0[T
[BT] 0[T
[T]

S 0A | 1B | 0
A 0S | 1B
B 1B | 1 | 0

22