Trabalho da disciplina Fundamentos teoricos da computação. O algoritmo foi baseado no livro Introdução à teoria da computação do Michael Sipser
Abaixo o enunciado do trabalho
Um autômato finito não determinístico (AFN) pode ser simulado a partir de
sua conversão em um autômato finito determinístico (AFD) que reconheça a
mesma linguagem.
O objetivo deste trabalho é implementar um programa simule um AFN qualquer
a partir de sua conversão para um AFD equivalente.
Para tanto, sua implementação (utilizando a linguagem C, C++ ou Java) deve
receber como entrada uma sentença e um arquivo contendo a descrição de um
AFN qualquer.
Em seguida, ele deve gerar como saída outro arquivo contendo a descrição
do AFD equivalente e, além disso, simular o AFD equivalente para determinar
a sentença pertence ou não à linguagem do AFN.
Além disso, deve-se utilizar como formato para os arquivos de entrada e
saída o mesmo padrão adotado pelo simulador JFLAP versão 7.0 que pode ser
encontrado em http://www.jflap.org/ .
O programa atualmente faz:
- Ler um arquivo .jff com o AFN
- Converter para AFD
- Simular um AFD a partir de uma sentença
- Salvar o AFD em um arquivo .jff