58

turing

Turing machine in C++ with an object oriented approach using templates.

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

  1. Include Turing.h in your C++ project.
  2. Create a Turing machine instance and configure its state.
  3. 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