Skip to content

Essay on implementing Alan Turing's conception of an universal computing machine.

Notifications You must be signed in to change notification settings

clodoN1109/turing-universal-machines

Repository files navigation

Turing Universal Machines

Implementation of Alan Turing's conception of a universal computing machine

Index

  • The Project
  • Source Code
  • Running
  • Requirements
  • Roadmap

The Project

This programming essay is based on Alan Turing's 1936 essay "On Computable Numbers, with an Application to the Entscheidungsproblem" and consistis in a simulation of his conceptual universal machine, which might help experimenting with varied and complex sets of configurations.

Link to the essay: https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf

Source Code

The code, written in C#, is organized into three files:

  • UniversalMachine.cs : Defines the machine, its components ( tape and scanner ) and its behavior ( Run and GetInstruction methods ).

  • MachineConfig.cs : Defines the possible configurations to be fed to a created machine (for now, only C10 and C1011, examples Turing uses in his essay).

    Note: A set of configurations is just the analog of a program and its sequence of instructions.

  • Program.cs : Creates an instance of the machine and runs it using a selected configuration.

Running

  • Open the Program.cs file and configure the instantiation of the machine, setting up its delay parameter (in miliseconds). A delay around 200 miliseconds (default) permits following the scanner in action step by step.

  • Set the configuration set parameter for the Run method, using one of the members of the MachineConfigs class.

The example ahead uses delay of 1000 miliseconds and the C001 configuration set, which is intended to compute the infinite sequence 001011011101111... .

  • Run the program and observe in the terminal a representation of each state of the machine during the computations.

Requirements

Roadmap

The plan is to expand and improve the code as I study the rest of the essay during the next 3 weeks (today is 02/02/2024, btw). One thing in my mind now is to create a simple web app where one could easily try out configurations and see the results.

About

Essay on implementing Alan Turing's conception of an universal computing machine.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages