Turing Machine in C++
This project implements a Turing Machine using an object-oriented approach in C++. It's designed to provide a practical and flexible foundation for simulating this fundamental computational model.
Features
Object-Oriented Design: Utilizes C++ templates for a generic and reusable codebase.
Flexible State Management: Includes a comprehensive state handling mechanism through TuringStates.h
.
Dynamic Tape Handling: Employs TapeList.h
for an efficient and adaptable tape management system.
Ease of Use: Simple and intuitive methods for setting up and running the Turing machine.
Getting Started
Prerequisites
- C++ Compiler
- Basic understanding of Turing machines and C++ templates
Installation
Clone the repository to your local machine:
git clone https://github.com/lunathanael/turing.git
Usage
- Include
Turing.h
in your C++ project. - Create a Turing machine instance and configure its state.
- Execute the machine and observe the output.
Code Examples
// Example of setting up and running a Turing machine
#include "Turing.h"
int main() {
// Setup and run your Turing machine here
return 0;
}
Contributing
Contributions to enhance the functionality or efficiency of the Turing machine are welcome.
License
This project is licensed under the MIT License - see the LICENSE.md file for details.
Contact
Nathanael Lu - info@lunathanael.dev
Project Link