/there-is-no-B-side

A basic Turing machine emulator and tools.

Primary LanguageHaskellMIT LicenseMIT

There-is-no-B-side

One tape to hold it all, One head to seek along,
One set of symbols to emulate them all and in their many states drive them.

Alan Turing, The Lord of the Tape

Description

A Haskell take on a single-tape//single-head Turing machine

Symbols, states and transitions are formally specified in JSON.
JSON machine specs are decoded and run by the VM/Main executable.

Plans within plans

WIP helper programs aim to automate the massive tasks of generating states, transitions and symbols for advanced machines.

Guest machine translator (WIP)

A nesting pre-processor is formally described as a template skeleton YAML host machine spec.
The goal is to lift an existing JSON spec with arbitrary (yet correct) alphabet,
transitions, states to a whole new machine spec.
The result shall be a spec of nested machines recursively emulating their guest.