Máquinas de Moore

Quando o autômato produz saída em vez de aceitar

O modelo

Uma máquina de Moore é um transdutor: em vez de aceitar ou rejeitar, emite uma saída. Na variante de Moore, a saída pertence ao estado — cada estado tem um valor associado, e a máquina emite o valor do estado em que está.

Consequências diretas no editor:

Execução

A máquina emite a saída do estado inicial antes de ler qualquer símbolo e, a partir daí, uma saída por transição percorrida. Para uma entrada de n símbolos, a fita de saída tem n + 1 valores.

A execução é determinística: havendo mais de uma transição possível, a ferramenta segue a primeira e avisa no painel — não escolhe em silêncio. Quando não há transição para o símbolo lido, a execução trava, e o painel diz em que estado e para qual símbolo.

O passo a passo mostra a saída acumulada até o passo atual; a execução em lote mostra a fita de saída completa de cada entrada.

Compatibilidade com o JFLAP

Os arquivos .jff do tipo moore gravam a saída em <output> dentro de cada estado — e repetem-na em <transout> dentro de cada transição, redundantemente. O AutomataLab lê o <output>, ignora o <transout> na leitura e o reconstrói na gravação a partir do estado de destino. O arquivo continua abrindo no JFLAP, mas a fonte da verdade é uma só.

O que falta

Máquinas de Mealy — a variante em que a saída fica na transição — não estão implementadas. Arquivos .jff do tipo mealy são recusados com uma mensagem explícita, em vez de abertos como se fossem outra coisa.