Sie sind auf Seite 1von 6

UNIVERSIDAD TECNOLOGICA DE LOS ANDES

FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

Teora de Compiladores

1. DATOS ACADEMICOS:

a. Nombre Asignatura: Teora de Compiladores
b. Unidad: Primera Unidad
c. Responsable:
Ing. Mario Aquino Cruz
2. PROCEDIMENTAL

- Conocer herramientas para el diseo de ADFs y AFNs
- Realiza pruebas de ER con ADFs y AFNs

3. SESION N (Tiempo Estimado: 02 Horas)

4. MARCO TEORICO
4.1. TRABAJANDO CON JFLAP
4.2. EJECUCIN DE JFLAP

Durante gran parte del curso vamos a desarrollar las prcticas con el software JFLAP, desarrollado
en la Universidad de Duke por Susan H. Rodger et al. Escrito en Java, se presenta al usuario como
un fichero comprimido y ejecutable .jar. Para su ejecucin es necesario tener localmente disponible
la JVM. El siguiente guin de prcticas tiene por objeto ensearle los conceptos fundamentales de
trabajo con JFLAP.
Para su ejecucin es necesario hacer doble click sobre el icono . En caso de no tener
instalada la JVM puede ser que obtenga algn tipo de error. En otro caso, se producir la carga del
programa, y obtendr un entorno de trabajo como el que se muestra.

JFLAP en ejecucin
Comenzaremos por el item de men rotulado Help. Actvelo mediante un click de ratn
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

Teora de Compiladores

tendr acceso a los submens About y Help. Del primero poco hay que decir; a travs el segundo
tendr acceso a una breve ayuda que conviene que lea. El item de men File da acceso en el
momento actual a las opciones Open y Quit. La segunda le permitir salir del programa, y la
primera le permite abrir y cargar un fichero de trabajo de JFLAP en el entorno. Como todava no
sabe nada sobre esta clase ficheros de trabajo, pospondremos su discusin hasta dentro de unas
lneas.

4.3. AUTOMATAS FINITOS
Gran parte del curso estar dedicado al anlisis de los autmatas finitos como modelos de
mquina abstracta sin memoria capaces de reconocer determinados lenguajes formales, y que son
un elemento indispensable en el conocimiento y la programacin de la fase de anlisis lxico de un
traductor. En consecuencia, comenzaremos por aprender a simular autmatas finitos con JFLAP.
Para ello es necesario activar el subprograma que permite trabajar con ellos, lo cual puede
lograrse pulsando el botn


Botn de Trabajo con Autmatas Finitos
Ello provoca la apertura de un entorno de trabajo como el siguiente:

Trabajando con Autmatas Finitos
En realidad no es ms que una superficie de dibujo, donde podemos representar grficamente los
autmatas finitos con los que trabajamos. La paleta permite hacerlo con
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

Teora de Compiladores

comodidad. Vamos a comenzar por dibujar un sencillo autmata de nicamente tres estados con
alfabeto de cinta A = {0, 1} .
Comenzamos por dibujar los estados, activando el botn . A partir de aqu situamos el ratn en el
punto de la superficie de dibujo deseado, y hacemos click con el ratn. La repeticin de esta accin
generar un nuevo estado cada vez. En nuestro caso: Dibujando

Dibujando los estados
A continuacin vamos a determinar qu estado es inicial y cules son finales.
Para ello, pulsamos el botn y situamos el puntero del ratn sobre el estado q0 que ser
nuestro estado inicial. Pulsamos sobre el estado y activamos con el botn derecho del ratn el
men contextual siguiente

Men Contextual de un Estado
escogiendo la opcin Initial. Realizamos la misma accin para q1 pero escogiendo Final. Ha
llegado el momento de enlazar los estados mediante transiciones etiquetas con smbolos del
alfabeto. Como vamos a trabajar con un autmata finito determinista, desde cada estado deben
salir dos arcos etiquetados con 0 y 1 respectivamente. Para activar las transiciones pulsamos en el
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

Teora de Compiladores

botn y situamos el puntero del ratn en el estado del que salga la transicin. Hacemos click y
sin soltar el botn del ratn desplazamos el puntero hasta el estado donde acaba la transicin,
momento en que soltamos el botn. Si lo hemos hecho bien, obtenemos la siguiente situacin:

Editando una Transicin
La ventana espera que etiquetemos con el smbolo correspondiente. En nuestro caso ser un 1 y
pulsamos Intro. Si todo ha ido habremos generado la transicin, y nuestro grafo tendr el siguiente
aspecto:

Transicin Generada
Complete ahora el grafo hasta obtener la situacin final deseada, que permite a nuestros
autmatas reconocer al lenguaje L = {0n1: n 0} .

AFD para 0n1con n 0. Si en algn momento se equivoca, puede borrar estados y transiciones
mediante el botn . Podemos guardar nuestro trabajo en un fichero escogiendo el item de
men File y dndole un nombre.
4.4. COMPUTANDO CADENAS
Podemos emplear ahora nuestro autmata para procesar cadenas pertenecientes al alfabeto A =
{0, 1} . Para ello disponemos del item de men Input que nos activa el submen siguiente:
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

Teora de Compiladores


Submen Input
De entre las varias posibilidades, comenzamos por la segunda, Step by State. Pulse sobre ella. El
efecto es la activacin de una ventana de peticin de datos, donde escribiremos la cadena
perteneciente al alfabeto de trabajo que queremos procesar.

Ventana de Entrada de Datos
Introducimos la cadena 00001 y pulsamos Aceptar. El entorno de trabajo cambia para presentar el
siguiente aspecto:

Procesando una Cadena
Podemos ir viendo los diferentes estados que induce el procesamiento de la cadena pulsando el
botn Step. Hgalo. Pruebe a repetir la tarea con la cadena 00010. Tambin podemos hacer la
computacin de una sola vez, escogiendo la opcin de submen Fast Run. Pruebe con ella las
cadenas 01, 1 y 0011. Tambin podemos computar mltiples cadenas escogiendo Multiple Run.
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

Teora de Compiladores

Hgalo, introduzca las tres cadenas anteriores de una sla vez y pulse Run Inputs en la
subventana derecha que se abr activado.

Ejecucin Mltiple
Hay ms opciones de trabajo, que comentaremos cuando vayan siendo necesarias a lo largo del
curso. En particular, podremos disponer de autmatas finitos no deterministas y con transiciones
psilon, junto con los algoritmos de transformacin de unos a otros. Igualmente podremos obtener
la representacin mnima de autmatas finitos


TRABAJO PREPARATORIO
Disee autmatas finitos deterministas sobre el alfabeto {0, 1} o {a,b} capaces de reconocer
a los siguientes lenguajes. Simule los autmatas obtenidos con JFLAP.

El conjunto de todas las cadenas que contienen exactamente dos as
El conjunto de todas las cadenas terminadas en 00.
El conjunto de todas las cadenas con tres ceros consecutivos (no necesariamente al final).
El conjunto de las cadenas con 011 como subcadena Guardar todos los Ejercicios y las capturas
de pantalla de las pruebas con cadenas en una carpeta con nombre y apellido luego comprimirlo y
entregar al docente.

Das könnte Ihnen auch gefallen