Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrbelga/simuldador_automato
um simulador de autômatos
https://github.com/mrbelga/simuldador_automato
automato automatofinito automatos javascript js linguagens-formais node nodejs scss simulador simuladorautomatofinito simuladorde yarn
Last synced: about 2 months ago
JSON representation
um simulador de autômatos
- Host: GitHub
- URL: https://github.com/mrbelga/simuldador_automato
- Owner: MrBElga
- License: mit
- Created: 2024-10-12T15:07:57.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-16T16:22:47.000Z (4 months ago)
- Last Synced: 2024-10-18T15:04:12.707Z (3 months ago)
- Topics: automato, automatofinito, automatos, javascript, js, linguagens-formais, node, nodejs, scss, simulador, simuladorautomatofinito, simuladorde, yarn
- Language: JavaScript
- Homepage:
- Size: 983 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Automato_Simulator
## 1. Objetivo
Desenvolver o entendimento de Linguagens Regulares e seu potencial de representação através da implementação de um simulador.## 2. Descrição
O trabalho deve ser preferencialmente realizado em duplas. Cada dupla deve projetar e desenvolver a aplicação abaixo, empregando a linguagem de livre escolha.### Simulador de Linguagens Regulares – Requisitos:
- **Representação 1:** Especificar e simular expressões regulares (ER) – maiores detalhes no Anexo 1;
- **Representação 2:** Especificar e simular autômatos finitos através de diagramas de transições:
- Tratar autômatos finitos determinísticos (AFD) e não-determinísticos (AFND);
- Permitir a edição/remoção de estados e transições;
- Permitir o reconhecimento de uma única entrada;
- Permitir o reconhecimento de múltiplas entradas;
- Permitir o reconhecimento de palavras passo a passo;
- **Representação 3:** Especificar e simular gramáticas regulares (GR).## 3. Produto
O programa a ser implementado neste projeto deverá atender rigorosamente os requisitos apresentados acima.### Prazos:
- Representação 1: **13/09**
- Representação 2: **18/09**
- Representação 3: **20/09**Além do programa, um relatório com a descrição do trabalho deverá ser entregue (ver seção Critérios).
## 4. Critérios
Os critérios de correção dos trabalhos são:
- **(80%)** O programa funciona corretamente para todos os casos de teste;
- **(20%)** Documentação: relatório simples explicando as técnicas utilizadas para implementar a máquina escolhida, a qualidade da solução e a estruturação do código.### Atenção:
- O plágio de programas não será tolerado. Programas similares terão nota zero independente de qual for o original e a cópia.
- Cada integrante será avaliado individualmente.## Anexo 1 – Representação ER
O simulador de ER poderá ser desenvolvido utilizando a biblioteca `stringmatch` (REGEX) do Java. A entrada para a expressão regular deverá conter:
- Dígitos: `0-9`
- Símbolos: `a-zA-Z`
- Operadores: `*` (fechamento), `+` ou `|` (união), `.` (concatenação)
- Parênteses para agrupar expressões.### Exemplo de Entrada:
- Linguagem formada por `{a,b}` com comprimento igual a 3.
- Exemplo de ER: `(a|b).(a|b).(a|b)`
- Exemplo de entradas aceitas: `aaa`, `aba`, `bbb`...#### Observações:
- O objetivo é limitar o uso do REGEX às funcionalidades básicas necessárias para a conversão entre ER e autômatos.
- A representação do símbolo ε fica a critério de cada dupla.Usando REGEX, a expressão pode ser abreviada da seguinte maneira: `^(a|b){3}$`
Onde:
- `^` indica o início da ER;
- `{x, y}` indica o comprimento mínimo `x` e máximo `y` da expressão `(a|b)`;
- `$` indica o fim da ER.