Sunteți pe pagina 1din 3

Proyecto

Lenguajes de Programación
Diseño de Autómatas para Evaluación de Expresiones Regulares.
Parte 1: Creación de entorno de diseño y visualización de grafos en JavaScript

El proyecto busca crear una aplicación que facilite el entorno de diseño de autómatas de estado
finito deterministas y no-deterministas.
El proyecto está dividido en dos partes. Para el primer parcial se utilizará JavaScript +
Ruby/HTML5 para el desarrollo del entorno visual, validación de expresiones y simulación.
Autómatas de estados Finitos Deterministas (AFD):

Un AFD es una quíntupla A = (Q, Σ, δ, q0, F)

F
Ejemplo:

Si p y q (estados) pertenecen a Q y a pertenece a Σ,

Se define la transición δ (q,a) = p.

a
q p

Los estados de aceptación se denotan gráficamente con un doble círculo y en la tabla de transición con
un asterisco al lado del estado.

Ejemplo: Si r pertenece a F, debe ser denotado con doble circulo como se observa en la figura.

r
En los AFD debe cumplirse que:
Para toda a que pertenece a Σ, existe una única transición de salida para cada estado.
Ejemplo:
La siguiente tabla de transiciones:
Next State for Input Next State for Input
Present State
0 1
a* a b
b c a
C* b c

Puede ser representada por el siguiente autómata:

El cual acepta las siguientes cadenas de número binarios:

011010

01000

10

1111110

Mediante la aplicación a ser desarrollada, se podrá diseñar autómatas finitos deterministas para validar
diferentes expresiones regulares.
c
Otro ejemplo sería:
( b 2 3
1
+
0
d 8
(
4
a )
+ c 7
5 6
El cual acepta lo siguiente:

(b+c+d)

(b+c+c+d)

(b+c+c+c+c+d)

(b+c+…+d)

(a+c)

El programa permitirá al usuario crear los estados iniciales, transiciones entre estados, estados de
aceptación y también la personalización de lexemas y/o tokens en las transiciones, como muestran los
ejemplos anteriores. Al finalizar el diseño y dada una expresión, se visualizará, a manera de simulación, la
transición de cada estado y se obtendrá como resultado el mensaje de aceptación o rechazo de la
expresión.

S-ar putea să vă placă și