RWU Software design
NPM/ NODE: https://nodejs.org/en/download/
Python: https://www.python.org/downloads/
git clone https://github.com/jaysongiroux/universalturingmachine
cd universalturingmachine
npm i python-shell
npm install
npm start
- Packaged together using Electron-Packager: https://www.npmjs.com/package/electron-packager
- Download the zip file from: https://drive.google.com/file/d/11VVDGymV3cND15r3Lg1tLaLYfeQK0lto/view?usp=sharing
- Extract Folder and open folder that Corresponds to your operating system.
- Mac (Darwin)
- Win 64
- Example 1: a*b* - Tape must start at the first character in the tape and be bounded on both sides
Tape: [,>a,a,a,a,a,b,b,b,b,] - Example 2: (a+b)*c+a* - Tape must start at the first character in the tape and must be bounded on both sides
Tape: [,>a,b,a,b,a,b,a,b,a,b,a,b,a,b,c,a,] - Example 3: a's in multiples of 3's - Tape must start at the first character in the tape and must be bounded on both sides
Tape: [,>a,a,a,] - Example 4: Accepts: c a* b* Δ* '[SPACE]'* c, tape can start wherever within bounds. Tape must be bounded on both sides. Accepts both forms of a "space"
Tape: [,c,a,b,>a,c,] or [,c,a,b,>Δ,c,]
Example Format: "[,>a,b,c,Δ, ,a,b,c,a,b,c"
- Brackets must be seperated from the tape by commas as seen from the format example above.
- Spaces can be represented as Δ or " " as long as it is consistent within the tape and transitions
Example Format: "{q0,a,q1,b,R},{q1,c,q2,b,L}"
- {current state, read, goto state, movement}
In this tab, you can trace the turing machine and follow the movements. With this output it makes it easy for the user to trace the position of the read head and determine the actions it is making.
When the encoding functions were designed, we purposed it to not be limited to a small alphabet. The table below is how each character is decoded. Between characters, there is a trailing "0".
To encode numbers, there is a sense of logic involved. since the only reason to involve numbers is when writing states (for example, "q5"). There is the same number of 1's as the number that follows "q"
Letter/ Symbol | Encoding Number |
---|---|
a | 1 |
b | 11 |
c | 111 |
c | 111 |
d | 1111 |
e | 11111 |
f | 111111 |
g | 1111111 |
h | 11111111 |
i | 111111111 |
j | 1111111111 |
k | 11111111111 |
l | 111111111111 |
m | 1111111111111 |
n | 11111111111111 |
o | 111111111111111 |
p | 1111111111111111 |
q | 11111111111111111 |
r | 111111111111111111 |
s | 1111111111111111111 |
t | 11111111111111111111 |
u | 111111111111111111111 |
v | 1111111111111111111111 |
w | 11111111111111111111111 |
x | 111111111111111111111111 |
y | 1111111111111111111111111 |
z | 11111111111111111111111111 |
Δ or Space | 111111111111111111111111111 |
- | 1111111111111111111111111111 |
[ | 11111111111111111111111111111 |
] | 111111111111111111111111111111 |