Laboratorio 1: Resumen teórico
Breve repaso de DFA (Autómata Finito Determinístico)
Composición de un DFA#
- Alfabeto
- Conjunto de estados
- Función de transición
- Estado inicial
- Estados de aceptación
Un DFA es una tupla .
Esta definición tiene su equivalente en código en el archivo common.ts, donde Alphabet () y State () son parámetros de tipo.
export interface MachineDescription<Alphabet, State> { transition: Transition<Alphabet, State>; initial: State; acceptance: State[];}Cómo visualizar un DFA#
El siguiente DFA detecta un número impar de letras a.

- Alfabeto : letras sobre las transiciones
- Conjunto de estados : cada círculo es un estado
- Función de transición : flechas entre estados con una letra al lado
- Estado inicial : La apunta una flecha que viene desde afuera
- Estados de aceptación : Estado con un reborde.
Cómo describir un DFA#
A continuación se describe el mismo DFA sin un diagrama.
- Alfabeto
- Conjunto de estados
- Estado inicial
- Estados de aceptación
- Función de transición : tabla a continuación
| estado | letra | nuevo estado |
|---|---|---|
Para qué sirven las DFA#
- Análisis estático que extrae DFA de tu código java
- Las expresiones regulares representan DFA
- redux usa conceptos similares
- Es una excelente forma de modelar el estado y los cambios de estado de nuestros programas