Skip to content

LinconAvila/Automata-in-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automata in Python

Welcome to the Automata in Python repository! This project features a collection of finite automata (FAs) implemented in Python. The goal is to provide an interactive and educational environment to explore and understand automata theory.

The automata in this collection are designed to demonstrate different types of finite automata and their applications, with clear documentation for each model. This repository is ideal for students, teachers, and enthusiasts of computational theory.


Table of Contents


Project Overview

This repository contains a series of finite automata (FAs) written in Python, showcasing different types of automata, including DFA, NFA, and other variations. Each automaton is designed to solve a specific problem or recognize a pattern in an input string. The project uses a modular, object-oriented approach to make it easy to understand and extend.

Features:

  • Interactive testing of input strings.
  • Clear, well-documented code.
  • Includes DFA, NFA, and other finite automata.
  • Easily extendable with more automata and tests.

Installation

To run the automata locally, follow these steps:

  1. Clone the repository:
    git clone https://github.com/LinconAvila/Automata-in-Python.git
    cd automatons-in-python
  2. Run the automata: Navigate to the src/ directory and run the desired automaton script:
    python automatonL1.py

Usage

After cloning the repository, you can interact with the automata through the command line. Each automaton has its own script within the src/ folder. Running the script will prompt you to enter a string, and the automaton will tell you whether the string is accepted or rejected based on its transition rules.

Example:

Welcome to Automaton L1! This automaton accepts strings containing at least 4 consecutive 'a's.
Enter a word (or 'exit' to quit): aaaa
The word 'aaaa' is accepted!

Automata Documentation

Each automaton in this repository has detailed documentation that explains its functionality, states, transitions, and examples. To view the documentation for a specific automaton, please visit the docs/ folder. Each automaton has its own markdown file describing its theory, design, and usage in detail.

  • Automaton L1 Documentation
  • Automaton L2 Documentation
  • (and so on...)

You can also explore the repository's code to see how the automata are implemented and interact with the logic directly.

Contributing

We welcome contributions to this project! If you'd like to add a new automaton, fix a bug, or improve the documentation, please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -m 'Description of changes').
  4. Push to your branch (git push origin feature-branch).
  5. Open a pull request.

Make sure to adhere to the project's coding style and provide clear documentation for any new automata.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contact

If you have any questions or suggestions, feel free to reach out via email at linconavila.souza@gmail.com

About

Collection of finite automata in Python for exploring automata theory with interactive examples and clear documentation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages