Skip to content

Interactive website for simulating variants of finite automata, Turing machines with 2D tapes, and k-queue automata

Notifications You must be signed in to change notification settings

memgonzales/turing-machine-variants

Repository files navigation

Turing Machine Variants

badge badge badge badge badge Vercel

This project is an interactive website for simulating the following abstract machines:

  • Two-way deterministic and nondeterministic finite automata
  • Two-way deterministic and nondeterministic Turing machines with two-dimensional tapes
  • Two-way deterministic and nondeterministic k-queue automata

It also allows the user to explore all the possible paths (runs) for nondeterministic automata and provides a theoretical analysis of selected abstract machine variants.

This website is the major course output in an automata, computability, and formal languages class for master's students under Dr. Arnulfo P. Azcarraga of the Department of Software Technology, De La Salle University.

Project Structure

This project consists of the following folders:

Folder Description
assets Contains the image files
scripts Contains the JavaScript files
style Contains the CSS style sheets

It also includes the following files:

File Description
index.html Webpage for finite automata (home page)
k-queue.html Webpage for Turing machines with two-dimensional tapes
turing-2d.html Webpage for k-queue automata

Running the Simulator

Running on the Web

Open the following website: https://turing-machine-variants.vercel.app/

Running Locally

  1. Create a copy of this repository:

    • If git is installed, type the following command on the terminal:

      git clone https://github.com/memgonzales/turing-machine-variants
      
    • If git is not installed, click the green Code button near the top right of the repository and choose Download ZIP. Once the zipped folder has been downloaded, extract its contents.

  2. Open index.html.

    • There is no need to install any additional software or dependency. However, internet connection is required to load fonts, libraries, and toolkits from their respective content delivery networks (CDNs).

Turing machine
k-queue automaton
nondeterminism

Built Using

This project uses JavaScript to carry out all the operations and computations on the client-side. Additional libraries and toolkits are enumerated in the following table:

Library/Toolkit Version Description License
jQuery 3.5.1 Fast, small, and feature-rich JavaScript library for HTML document traversal and manipulation, event handling, and animation MIT License
Bootstrap 5.0.2 Front-end toolkit featuring Sass variables and mixins, responsive grid system, prebuilt components, and JavaScript plugins MIT License

The descriptions of these technologies are taken from their respective websites.

The opinionated code formatter Prettier was employed to enforce uniformity and consistency of coding style.

This website is deployed on the cloud platform-as-a-service Vercel.

Author

Assets (images) are properties of their respective owners. Attribution is found in the credits file.