Introdução

O que é o AutomataLab, de onde veio e como se usa

Introdução

O AutomataLab é um editor e simulador de autômatos que roda inteiro no navegador. Cobre autômatos finitos (determinísticos e não-determinísticos, com transições λ), máquinas de Moore, autômatos com pilha e máquinas de Turing de uma fita. Lê e grava o formato .jff do JFLAP, de modo que o material didático já existente continua servindo.

Nasceu na disciplina de Teoria da Computação do mestrado em Computação Aplicada da Univali, no segundo semestre de 2026. O JFLAP — a ferramenta de referência da área, mantida pela Duke University desde os anos 1990 — é um programa Java de desktop, e rodá-lo num Mac atual exige instalar um ambiente Java que o sistema já não traz. Diante dessa dificuldade prática, e com a intenção de fixar o conteúdo construindo em vez de só usando, começou-se uma reimplementação para a web.

O modelo foi o Web-GALS, da própria Univali: uma versão web do gerador de analisadores GALS que manteve o formato de arquivo da ferramenta original e eliminou a instalação local. O AutomataLab segue a mesma proposta com o JFLAP. Não contém código do JFLAP — é uma implementação independente, publicada sob licença MIT — mas conversa com ele pelo formato de arquivo.

Uma decisão de projeto atravessa tudo: onde a literatura diverge, a ferramenta segue a definição usada nas aulas. A máquina de Turing, em particular, implementa a 8-upla de Menezes — com o marcador de início Δ, o branco ß, os movimentos E/D e as três condições de parada — em vez da variante do JFLAP, que tem fita infinita nos dois lados e nenhum marcador. A convenção do JFLAP existe como alternativa, para abrir arquivos feitos nele.

Uso geral

A ferramenta está em https://andersonpiresme.github.io/automatalab/. Não há instalação, cadastro nem servidor: tudo acontece no navegador, e os arquivos ficam na sua máquina.

A tela tem três regiões:

Barra de menus, no alto. Seis menus — Arquivo, Entrada, Testar, Converter, Exibir e Ajuda — organizados como no JFLAP, para que quem conhece um se oriente no outro. À direita ficam as quatro ferramentas de edição (Selecionar, Estado, Transição, Apagar), os botões de desfazer e refazer e o nome do arquivo aberto.

Área de desenho, o centro. É onde o autômato aparece e é editado. Estados são círculos; o inicial recebe uma seta à esquerda, os finais têm círculo duplo; transições são arestas rotuladas. Laços, arestas em sentidos opostos e arestas que precisam contornar outro estado são curvadas automaticamente. No canto inferior fica a linha de status, que responde a cada ação.

Painel lateral, à direita. Tem três seções: Simulação, com o campo de entrada e o resultado da execução — inclusive a fita, no caso da máquina de Turing; Seleção, que mostra e edita o que está selecionado no desenho; e a Tabela de transições, sempre sincronizada com o diagrama.

O fluxo típico é: abrir um .jff ou desenhar do zero, digitar uma cadeia no campo de simulação, clicar em Testar ou acompanhar passo a passo pelo menu Entrada, e salvar. Os capítulos seguintes detalham cada parte.

O que este manual cobre

Capítulo Conteúdo
Interface e menus Cada item de menu, as ferramentas de edição, os atalhos de teclado
Autômatos finitos Edição, simulação, conversões (DFA, mínimo, ER, gramática), equivalência
Máquinas de Moore Saída nos estados, execução como transdutor
Autômato com pilha Pilha, pop/push, não-determinismo, aceitação por estado final ou pilha vazia
Máquinas de Turing A definição de Menezes, convenções de fita, transições, condições de parada, passo a passo
O formato .jff O que é lido e gravado, os dialetos do JFLAP, o que não é suportado
Como foi construído Arquitetura, decisões, testes, o uso de IA no desenvolvimento
Roadmap O que já existe e as melhorias planejadas, em ordem de prioridade
Informações Versão, changelog, créditos e licença