From 5f31784b97e1951b36e5128285b74f5588ca099f Mon Sep 17 00:00:00 2001 From: grammarware Date: Wed, 20 Jun 2012 15:33:20 +0200 Subject: [PATCH] multiplication --- examples/mult/README.txt | 5 +++ examples/mult/mult.ctur | 58 +++++++++++++++++++++++++++++++ examples/mult/mult.t_l2 | 73 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 examples/mult/README.txt create mode 100644 examples/mult/mult.ctur create mode 100644 examples/mult/mult.t_l2 diff --git a/examples/mult/README.txt b/examples/mult/README.txt new file mode 100644 index 0000000..934a91e --- /dev/null +++ b/examples/mult/README.txt @@ -0,0 +1,5 @@ +This is a somewhat complicated Turing Machine program that performs multiplication of two unary numbers. + +You should be able to understand it with relative easy, once you have a look at other examples (in particular, copy and incby). + +-- Vadim Zaytsev, http://grammarware.net diff --git a/examples/mult/mult.ctur b/examples/mult/mult.ctur new file mode 100644 index 0000000..07a3111 --- /dev/null +++ b/examples/mult/mult.ctur @@ -0,0 +1,58 @@ +J058 +W0 +MF +J13 +MF +J_7 +W0 +MF +J18 +MF +J110 +W1 +MB +J113 +MB +J115 +W1 +MF +J021 +J17 +MB +J121 +MB +J123 +W1 +MF +J058 +W0 +MF +J129 +MF +J053 +W0 +MF +J134 +MF +J136 +W1 +MB +J139 +MB +J141 +W1 +MF +J133 +MB +J146 +MB +J148 +W1 +MF +J128 +MF +MF +J154 +MF +J156 + diff --git a/examples/mult/mult.t_l2 b/examples/mult/mult.t_l2 new file mode 100644 index 0000000..1954f0e --- /dev/null +++ b/examples/mult/mult.t_l2 @@ -0,0 +1,73 @@ +J0 stop +W0 +L skip + MF + J1 skip + MF + J_ copy +L copy + W0 + REP 2 { + L skip2 + MF + J1 skip2 + } + W1 + REP 2 { + L back + MB + J1 back + } + W1 + MF + J0 end + J1 copy +L end + REP 2 { + L back2 + MB + J1 back2 + } + W1 + MF + J0 stop +L mainloop + W0 +L skip3 + MF + J1 skip3 + MF + J0 exit +L incby + W0 + REP 2 { + L skip4 + MF + J1 skip4 + } + W1 + REP 2 { + L back3 + MB + J1 back3 + } + W1 + MF + J1 incby + REP 2 { + L back4 + MB + J1 back4 + } + W1 + MF + J1 mainloop +L exit + MF + REP 2 { + L skip5 + MF + J1 skip5 + } +L stop +