Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Teoria de Lenguaje

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

Unidad II: Teoría de Lenguaje

2.1. EXPRESION REGULAR.

El lenguaje aceptado por un Autómata Finito, es fácilmente descrito por una simple
expresión regular.

Se define L0 = { ε }

L* = Clausura de Kleene

L+ = Clausura Positiva

Sea Σ un alfabeto, las expresiones regulares sobre Σ y los conjuntos que ellos
denotan se definen recursivamente como siguen:

1. Ø es una expresión regular que denota el conjunto vacío


2. ε es una expresión regular y denota el conjunto { ε }

Por lo tanto:

(r +s) denota al conjunto R U S


(rs) denota al conjunto RS
r* denota al conjunto R*

2.1.1. EQUIVALENCIA ENTRE EXPRESION REGULAR Y AFN- ε.

Teorema: Sea r una expresión regular, entonces existe un AFN- ε que acepta L(r).

Expresiones Regulares básicas

ab

a|b
a b*

La clausura positiva ab+ para trabajar en JFLAP esta dada por ab+ = abb*

2.1.2. CONVERSION DE EXPRESION REGULAR A AFN- ε.

Dada la ER, realice su AFN- ε.

1. (p | q)* r

2. xyy* z
2.1.3. CONVERSION DE EXPRESION REGULAR A AFD.

Primer paso: Convertir la ER a AFN- ε

Segundo paso: Convertir el AFN- ε a AFD

Dada la Expresión Regular xyy* z, realice el AFD.

AFN- ε

ε x y z
q0 {q1} Ø Ø Ø
q1 Ø {q2} Ø Ø
q2 {q3} Ø Ø Ø
q3 Ø Ø {q4} Ø
q4 {q5,q7} Ø Ø Ø
q5 Ø Ø {q6} Ø
q6 {q5,q7} Ø Ø Ø
q7 Ø Ø Ø {q8}
q8 {q9} Ø Ø Ø
*q9 Ø Ø Ø Ø

δ(q0, ε ) = Clause(q0) = {q0,q1} Primer estado (Estado Inicial)


δ({q0,q1}, x) = δ(q0, x) U δ(q1, x) = Ø U {q2}= Clause(q2) = {q2,q3} Segundo
Estado
δ({q0,q1}, y) = δ(q0, y) U δ(q1, y) = Ø U Ø = Ø
δ({q0,q1}, z) = δ(q0, z) U δ(q1, z) = Ø U Ø = Ø
δ({q2,q3}, x) = δ(q2, x) U δ(q3, x) = Ø U Ø = Ø
δ({q2,q3}, y) = δ(q2, y) U δ(q3, y) = Ø U {q4} = Clause{q4} = {q4,q5,q7} Tercer
Estado
δ({q2,q3}, z) = δ(q2, z) U δ(q3, z) = Ø U Ø = Ø
δ({q4,q5,q7}, x) = δ(q4, x) U δ(q5, x) U δ(q7, x) = Ø U Ø U Ø = Ø
δ({q4,q5,q7}, y) = δ(q4, y) U δ(q5, y) U δ(q7, y) = Ø U {q6} U Ø = {q6} =
Clause(q6) = {q5,q6,q7} Cuarto Estado
δ({q4,q5,q7}, z) = δ(q4,z) U δ(q5,z) U δ(q7,z) = ØU Ø U {q8} = Clause(q8) ={q8,q9}
Quinto Estado
δ({q5,q6,q7}, x) = δ(q5, x) U δ(q6, x) U δ(q7, x)= Ø U Ø U Ø = Ø
δ({q5,q6,q7}, y) = δ(q5, y) U δ(q6, y) U δ(q7, y) = Ø U {q6} U Ø = {q6} = Clause(q6)
= {q5,q6,q7}
δ({q5,q6,q7}, z) = δ(q5,z) U δ(q6,z) U δ(q7,z) = Ø UØ U {q8} = Clause(q8) ={q8,q9}
δ({q8,q9}, x) = δ(q8, x) U δ(q9, x) = Ø U Ø = Ø
δ({q8,q9}, y) = δ(q8, y) U δ(q9, y) = Ø U Ø = Ø
δ({q8,q9}, z) = δ(q8, z) U δ(q9, z) = Ø U Ø = Ø

AFD

2.1.4. CONVERSION DE AUTOMATA FINITO A EXPRESION REGULAR.

La estrategia para construir una expresión regular a partir de un autómata finito es:

1. Para cada estado de aceptación q, aplicamos el proceso de reducción para


producir un autómata equivalente, con expresiones regulares como
etiquetas de los arcos. Eliminamos todos los estados, excepto q y el estado
inicial q0.
2. Si q ≠q0, debemos terminar con un autómata de dos estados, es posible
describir de varias formas las expresiones regulares que representan
cadenas aceptadas.
3. Si el estado inicial también un estado de aceptación, hay que llevar a cabo
una eliminación de estados del autómata que describe todos los estados
excepto el inicial. Cuando se hace esto, nos quedamos con un autómata de
un solo estado, donde la expresión regular que representa las cadenas
aceptadas por este autómata es R*.

Para ello se debe comenzar poniendo conjunto vacío en todos los estados para
nivelara al autómata e iniciar a remover los estados no finales (intermedios),
donde solo se deja el inicial y el final. Cuando el autómata va al mismo estado con
dos estados diferentes, se emplea la unión de los conjuntos por medio +.

Un lenguaje regular en un alfabeto Σ es uno que puede obtenerse de esos


lenguajes básicos con las operaciones de unión, concatenación y clausura de
Kleene (*). Asi pues, es factible describir un lenguaje regular con una formula
explicita. Es común que esta ultima se simplifique un poco, al omitir las llaves {} o
sustituirlas por un paréntesis y al reemplazar U con +, de lo cual resulta lo que se
llama expresión regular.

Lenguaje Expresión Regular


(ε) ε
(0) 0
(0001) 0001
(0,1) 01
(0,10) 0 +10
(1,ε) (001) (1+ ε) 001
(110)*(1U0) (110)*(1+0)
(1)*(10) 1*10
(10,11,110101)* (10+11+110101)*
(0,10)*((111) * U (001,ε)) (0+10)*((111) *+ (001+ε))

Ejemplos:

1-Dado el AFD, encuentre la ER

Expresión Regular (0*10*1)* 0*10*


2-Dado el AFD, encuentre la ER

Lo primero es representar los elementos del AFD, en función de expresión regular,


es decir como el estado q1 tiene 0 U 1 convertirlo a 0+1. Posteriormente nivelar el
AFD con conjuntos vacios y finalmente se elimina el estado intermedio q2 para
dejar solo el estado inicial y estado final.

La expresión regular 1*00*1(0+1)*

3-Dado el AFN, encuentre la ER

Lo primero es representar los elementos del AFN, en función de expresión regular,


es decir como el estado q2 tiene 0 U 1 convertirlo a 0+1. Posteriormente nivelar el
AFN con conjuntos vacios y finalmente se elimina el estado intermedio q1 para
dejar solo el estado inicial y estado final.

La expresión regular es 1*00*1(0+1)*


2.2. GRAMATICAS LIBRE DE CONTEXTO.

Existen cuatro componentes importantes en la descripción gramatical de un


lenguaje:

1. Un conjunto finito de símbolos que forman cadenas del lenguaje que se esta
definiendo llamado símbolos terminales

2. Un conjunto finito de variables, llamadas símbolos no terminales. Cada variable


representa un lenguaje, es decir conjunto de cadenas.

3. Una de las variables representa el lenguaje que se esta definiendo, se llama


símbolo inicial. Otras variables representan clases auxiliares de cadenas que
ayudan a definir el lenguaje del símbolo inicial.

4. Un conjunto finito de producciones o reglas, que representan la definición


recursiva de un lenguaje. Cada producción consta de:

a) La variable a la que define la producción. A esta variable se le llama a menudo


cabeza de producción.

b) El símbolo de producción →

c) Una cadena de cero o mas símbolos terminales y variables. Esta cadena,


llamada cuerpo de la producción, representa una forma posible de construir
cadenas en el lenguaje de la variable de la cabeza. Para hacerlo los símbolos
terminales no cambian, pero las variables del cuerpo sustituirse por cualquier
cadena que se sabe que esta en el lenguaje de esa variable.

Los cuatro componentes componen una gramática libre de contexto (GLC), a


veces se llamaran simplemente gramática. Se representa mediante sus cuatro
componentes, G=(V,T,P,S), donde V es el conjunto de variables, T el de símbolos
terminales, P el conjunto de producciones y S el símbolo inicial.

Ejemplo:

S →aS

S →bA

A →aS

A→ε
2.2.1. CONVERSION DE AUTOMATA FINITO A GRAMATICA

Cada Autómata Finito puede ser representado por una Gramática, donde la
variable de producción representa el estado y los símbolo son los elementos.

Ejemplos:

1-Dado el Autómata Finito, encuentre la Gramática

Lo primero es representar a cada estado como variable de producción de la


gramática, posteriormente se realiza las producciones.

2-Dado el Autómata Finito, encuentre la Gramática


Lo primero es representar a cada estado como variable de producción de la
gramática, posteriormente se realiza las producciones.

2.2.2. CONVERSION DE GRAMATICA A AUTOMATA FINITO

Cada Gramática puede ser un Autómata Finito, done las variable de producción
son estados y los elementos son símbolos.

Ejemplo:

1-Dada la Gramática, encuentre el Autómata Finito

También podría gustarte