Skip to content

Implementation of a Pushdown Automaton, the recognizer module of Context-Free Languages.

Notifications You must be signed in to change notification settings

hellsdeur/Pushdown-Automaton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pushdown-Automaton

Implementation of a Pushdown Automaton, the recognizer module of Context-Free Languages. This project was created during a Theory of Computation course at Universidade Federal do Pará (UFPA).

Implementação de um Autômato de Pilha, o módulor reconhecedor de linguagens livres de contexto. Esse projeto foi criado durante o curso de Linguagens Formais, Autômatos e Computabilidade na Universidade Federal Do Pará (UFPA).

🛠 Módulos Utilizados

OS - Requerido para adição de algumas funcionalidades no manuseio de pastas e arquivos. Copy - Requerido para adição de algumas funcionalidades extras na cópia de objetos e variáveis. RE - Requerido para a utilização de regex. Pathlib - Requerido para utilização de caminhos entre diferentes sistemas operacionais.

Todos pacotes utilizados são built-in do Python 3.8.5.

📈 Exemplo de Uso

1 - Transferir todos os arquivos que desejam ser lido para a pasta "examples".

2 - Executar o arquivo main.py

3 - Dar entrada no valor que corresponde à gramática que se deseje executar.

4 - Inserir a palavra desejada.

5 - Pressionar Enter para finalizar o programa.

📖 Descrição dos Módulos Elaborados

file_handling.py

Responsável por realizar o gerenciamento do arquivo de entrada contendo as gramáticas e regras para um formato de dicionário dentro do Python

preprocessing.py

Responsável por realizar todo o pré processamento do dicionário gerado pelo file_handling, dessa forma visando fazer uma boa distinção entre as gramáticas, regras e atribuí-los adequadamente a cada tipo de variável.

automaton.py

Responsável por criar a estrutura do autômato e realizar sua execução de acordo com as gramáticas e regras de entrada.

interface.py

Responsável por gerir a estrutura de execução, dessa forma tornando-a mais aprazível ao usuário.

About

Implementation of a Pushdown Automaton, the recognizer module of Context-Free Languages.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages