Programacion De Sistemas I
INGENIERÍA EN SISTEMAS COMPUTACIONALES MATERIA: LENGUAJES Y AUTÓMATAS DOCENTE: ING. HÉCTOR TADEO CADENA ALUMNO: EMANUEL PAXTIÁN COTO FECHA 12-AGOSTO DE 2011
Centro De Estudios Superiores De Los Tuxtlas
Problema:
Especificar un analizador léxico que reconozca: a) Números enteros. b) Identificadores.
El analizador léxico deberá de llevar: El lenguajeAutómata Tabla de transiciones Expresión regular
L= (0-9)+
(Aa-Zz)+(0-9)*
1
EMANUEL PAXTIÁN COTO
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Lenguaje utilizado por el autómata
Centro De Estudios Superiores De Los Tuxtlas
Reconocimiento De Números Enteros
Lo primero que vamos a hacer es hacer nuestra expresión regular para que con ayuda del programa JFLAP vamos a realizar los demásy hacer las pruebas pertinentes Abrimos el JFLAP y seleccionamos la parte de expresiones regulares
Luego en la pantalla que nos abre escribimos nuestra expresión regular en este caso sería (0+1+2+3+4+5+6+7+8+9)* quedando de la siguiente manera la cual puede aceptar uno o cual quiera de ellos.
2
EMANUEL PAXTIÁN COTO
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Centro De EstudiosSuperiores De Los Tuxtlas
acto seguido le daremos en convert y NFA (autómata finito no determinístico ) y nos saldrá nuestro NFA
hasta aquí nuestro autómata se nos muestra de una forma reducida aquí le podemos hacer de dos forma una es darle en Do STEP (paso a paso ) lo cual nos va a ir generando nodo tras nodo en este caso le daré en Do All para que me cree mi autómata completo
Ahorasolo nos resta darle en EXPORT para que nos los pase a otra ventana en la cual nos queda nuestro AUTÓMATA FINITO NO DETERMINÍSTICO aquí lo muestro en forma
3
EMANUEL PAXTIÁN COTO
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Centro De Estudios Superiores De Los Tuxtlas
de circulo para mayor apreciación
4
EMANUEL PAXTIÁN COTO
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Hay querecordar que NFA tiene un equivalente a DFA (autómata finito determinístico) por lo cual lo convertiremos a uno de ellos para ello le daremos clic en convert y luego en convert to DFA al hacer esto nos aparecerá la siguiente pantalla donde nos aparece nuestro autómata finito determinístico aun incompleto
Centro De Estudios Superiores De Los Tuxtlas
Para a completarlo le daremos en complete con locual nos aparecerá otro autómata ahora y datemos en done para que nos quede este autómata
Aquí como podemos apreciar va cada nodo a otro todos unidos entre si el autómata aun es muy complejo por lo cual nosotros lo reduciremos, para hacer esto tendremos que darle en convert y luego en minize to DFA con lo cual nos aparece la siguiente pantalla donde se muestra el autómata sin aplicarle lareducción
Aquí es importante mencionar que si tuviera ramificación tendríamos que darle en el nodo mas alto para luego darle en complete subtree para que se a complete el árbol 5 EMANUEL PAXTIÁN COTO
INGENIERÍA EN SISTEMAS COMPUTACIONALES
Centro De Estudios Superiores De Los Tuxtlas
en este caso le daremos en finish y nos aparecerá el autómata con los nodos pero aun no se muestran lastransiciones
Para que las transiciones aparezcan tendremos que darle en complete y nos aparecerá nuestro autómata final con sus respectivo estados y transiciones
Llegado a este paso solo nos falta comprobar las palabras aceptadas por nuestro autómata Las palabras a evaluar son las siguientes PALABRA DESCRIPCIÓN 1 Un digito 33333 Un digito donde es recursivo 123456 Secuencia de dígitos A1Carácter al principio no numérico 1A Carácter al final no numérico 23A79 Un carácter no numérico en medio -899 Numero negativo Ahora para probar que palabras son aceptadas le damos clic en input y luego en MÚLTIPLE RUN ahí escribimos nuestras palabras y le damos en run imputs y ahí nos aparecerá que palabras son aceptadas y cuales no
6
EMANUEL PAXTIÁN COTO
INGENIERÍA EN SISTEMAS...
Regístrate para leer el documento completo.