TuringSim
C++ framework to simulate abstract computing models
utm.h
1 #pragma once
2 
3 #include <machine/Turing/deterministicTuringStyleMConfigurationTuringMachine.h>
4 #include <transition/Turing/stringTuringStyleMConfigurationTuringMachineTransition.h>
5 
13  class Utm {
14  public:
20  constexpr static bool hasHalfTape = true;
21 
26 
34 
38  typedef std::set<TransitionType> TransitionSetType;
39 
43  static UtmType makeUtm();
44 
48  static TransitionSetType makeFind();
49 
54 
59 
64 
68  static TransitionSetType makeCopy();
69 
74 
79 
84 
89 
93  static TransitionSetType makeE();
94 
98  static TransitionSetType makeCon();
99 
103  static TransitionSetType makeInit();
104 
108  static TransitionSetType makeSim();
109 
113  static TransitionSetType makeMf();
114 
118  static TransitionSetType makeSh();
119 
123  static TransitionSetType makeInst();
124  };
125 }
TuringSim::Machine::Turing::Utm::makePrintAtEnd
static TransitionSetType makePrintAtEnd()
Build the print at end function.
Definition: utm.cpp:54
TuringSim::Machine::Turing::Utm::makeFind
static TransitionSetType makeFind()
Build the find function.
Definition: utm.cpp:31
TuringSim::Machine::Turing::Utm::makeReplace
static TransitionSetType makeReplace()
Build the replace function.
Definition: utm.cpp:96
TuringSim::Machine::Turing::Utm::makeE
static TransitionSetType makeE()
Build the e table of the UTM.
Definition: utm.cpp:130
TuringSim::Machine::Turing::Utm::hasHalfTape
constexpr static bool hasHalfTape
This machine works on an half-tape.
Definition: utm.h:20
TuringSim::Machine::Turing::Utm::makeCopyAndErase
static TransitionSetType makeCopyAndErase()
Build the copy and erase function.
Definition: utm.cpp:82
TuringSim::Machine::Turing::Utm::makeInst
static TransitionSetType makeInst()
Build the inst_n table of the UTM.
Definition: utm.cpp:212
TuringSim::Machine::Turing::Utm::makeComparison
static TransitionSetType makeComparison()
Build the comparison function.
Definition: utm.cpp:105
TuringSim::Machine::Turing::Utm::makeFindLast
static TransitionSetType makeFindLast()
Build the find last function.
Definition: utm.cpp:117
TuringSim::Machine::Turing::DeterministicTuringStyleMConfigurationTuringMachine
Deterministic machines whose transitions are Transition::TuringStyleMConfigurationTuringMachineTransi...
Definition: deterministicTuringStyleMConfigurationTuringMachine.h:24
TuringSim::Machine::Turing::Utm::makeSim
static TransitionSetType makeSim()
Build the sim_n table of the UTM.
Definition: utm.cpp:167
TuringSim::Transition::Turing::StringTuringStyleMConfigurationTuringMachineTransition
Transitions as we find in 1936 Turing's paper, where nodes are std::string.
Definition: stringTuringStyleMConfigurationTuringMachineTransition.h:16
TuringSim::Machine::Turing::Utm::makeCopy
static TransitionSetType makeCopy()
Build the copy function.
Definition: utm.cpp:74
TuringSim::Machine::Turing::Utm
A factory for the universal Turing machine described in Turing's 1936 paper.
Definition: utm.h:13
TuringSim::Machine::Turing::Utm::TransitionType
Transition::Turing::StringTuringStyleMConfigurationTuringMachineTransition< hasHalfTape > TransitionType
The type of transitions returned by this factory.
Definition: utm.h:33
TuringSim::Machine::Turing::Utm::makeFindAndMove
static TransitionSetType makeFindAndMove()
Build the find and move function.
Definition: utm.cpp:64
TuringSim::Machine::Turing
Namespace of Turing machines, that is whose storage is a tape.
Definition: deterministicSimpleTuringMachine.h:8
TuringSim::Machine::Turing::Utm::makeMf
static TransitionSetType makeMf()
Build the mf_n table of the UTM.
Definition: utm.cpp:179
TuringSim::Machine::Turing::Utm::makeUtm
static UtmType makeUtm()
Build a new UTM.
Definition: utm.cpp:4
TuringSim::Machine::Turing::Utm::UtmType
DeterministicTuringStyleMConfigurationTuringMachine< std::string, hasHalfTape > UtmType
The type of Turing's UTM.
Definition: utm.h:25
TuringSim::Machine::Turing::Utm::TransitionSetType
std::set< TransitionType > TransitionSetType
Sets of TransitionType.
Definition: utm.h:38
TuringSim::Machine::Turing::Utm::makeErase
static TransitionSetType makeErase()
Build the erase function.
Definition: utm.cpp:45
TuringSim::Machine::Turing::Utm::makeInit
static TransitionSetType makeInit()
Build the init table of the UTM.
Definition: utm.cpp:153
TuringSim::Machine::Turing::Utm::makeCon
static TransitionSetType makeCon()
Build the con table of the UTM.
Definition: utm.cpp:140
TuringSim::Machine::Turing::Utm::makeSh
static TransitionSetType makeSh()
Build the sh_n table of the UTM.
Definition: utm.cpp:196