Talk:Assemblyfuck
My idea for making a compiler
Tags
To make tags my idea is that the program runs on an infinite loop, like this:
+[code]
But that doesn't do anything, so my idea is that the first two cells of the tape of any program looks like this:
cell #1: 255 cell #2: 1 cell #3: 0 cell #4: 0 cell #5: 0
The cell #1 is a cell that you can come to it later by easily writing this +[-<+]-
The cell #2 is the cell that marks which tag is running right now
The cell #3 is just for doing a equality algorithm
The cell #4 is also for doing the equality algorithm
The cell #5 is just for breaking loops
->+[ if tag 1[code+[-<+]->>>>] +[-<+]->if tag 1[code+[-<+]->>>>] +[-<+]->if tag 2[code+[-<+]->>>>] +[-<+]->if tag 3[code+[-<+]->>>>] etc end of code loop+[-<+]->]
by doing that you can only have 255 tags which isn't enough. The new code is:
start of program ->+[ copy tag cell so equal algorithm doesnt break it >[-]<[->+>+<<]>>[-<<+>>]<< detect if tag equals 1 >>+<<-[>>-<<[-]] tag 1 code >>[>> ||||| TAG 1 CODE ||||| ==end of tag 1 code fix tag cell because equal algorithm did break it +[-<+]->>[-<+>] break tag 1 loop >[-]> ] end of tag 1 code loop <<< end of program loop ]
I think my comments are understandable, right?. A program that does have 6 tags looks like this:
start of program ->+[ copy tag cell so equal algorithm doesnt break it >[-]<[->+>+<<]>>[-<<+>>]<< detect if tag equals 1 >>+<<-[>>-<<[-]] tag 1 code >>[>> ||||| TAG 1 CODE ||||| ==end of tag 1 code fix tag cell because equal algorithm did break it +[-<+]->>[-<+>] break tag 1 loop >[-]> ] end of tag 1 code loop copy tag cell so equal algorithm doesnt break it >[-]<[->+>+<<]>>[-<<+>>]<< detect if tag equals 2 >>+<<--[>>-<<[-]] tag 2 code >>[>> ||||| TAG 2 CODE ||||| ==end of tag 2 code fix tag cell because equal algorithm did break it +[-<+]->>[-<+>] break tag 2 loop >[-]> ] end of tag 3 code loop copy tag cell so equal algorithm doesnt break it >[-]<[->+>+<<]>>[-<<+>>]<< detect if tag equals 3 >>+<<---[>>-<<[-]] tag 3 code >>[>> ||||| TAG 3 CODE ||||| ==end of tag 3 code fix tag cell because equal algorithm did break it +[-<+]->>[-<+>] break tag 3 loop >[-]> ] end of tag 4 code loop copy tag cell so equal algorithm doesnt break it >[-]<[->+>+<<]>>[-<<+>>]<< detect if tag equals 4 >>+<<----[>>-<<[-]] tag 4 code >>[>> ||||| TAG 4 CODE ||||| ==end of tag 4 code fix tag cell because equal algorithm did break it +[-<+]->>[-<+>] break tag 4 loop >[-]> ] end of tag 4 code loop copy tag cell so equal algorithm doesnt break it >[-]<[->+>+<<]>>[-<<+>>]<< detect if tag equals 5 >>+<<-----[>>-<<[-]] tag 5 code >>[>> ||||| TAG 5 CODE ||||| ==end of tag 5 code fix tag cell because equal algorithm did break it +[-<+]->>[-<+>] break tag 5 loop >[-]> ] end of tag 5 code loop copy tag cell so equal algorithm doesnt break it >[-]<[->+>+<<]>>[-<<+>>]<< detect if tag equals 6 >>+<<------[>>-<<[-]] tag 6 code >>[>> ||||| TAG 6 CODE ||||| ==end of tag 6 code fix tag cell because equal algorithm did break it +[-<+]->>[-<+>] break tag 6 loop >[-]> ] end of tag 6 code loop <<< end of program loop ]
code is slooooooooooooooooooooooooow but this assembly wasn't mean to be compiled to brainfuck (unlike BF-ASM:8)