Talk:Maentwrog
Jump to navigation
Jump to search
This language can actually emulate brainfuck without input
Here is how. The following code assumes long
is 4-byte.
- Execute this at first:
: initialize 30000 4 * alloc *arr =arr *ptr 0 =ptr ; initialize
. - Then this:
: init-arr 0 arr ptr + set + 1 =ptr ptr 30000 > @init-arr ; 0 init-arr 0 =ptr
- Each non-looping commands can be translated into these:
>
:: go-right ptr 4 + =ptr ;
<
:: go-left 4 ptr - =ptr ;
+
:: increment arr ptr + get 1 + 256 swap mod arr ptr + swap put ;
-
:: decrement 1 arr ptr + get - 256 swap mod arr ptr + swap put ;
.
:: output arr ptr + get .. ;
- Looping commands
[
and]
.- For example if your code was:
+++[>++<-]>.
, then translate into this:
- For example if your code was:
rem put here what 1. and 2. says. ; rem put non-looping words definitions ; rem loop1 is for >++<- ; : loop1 rem translated from >++<- ; go-right inc inc go-left dec rem here is to check if zero or not. ; arr ptr + get @loop1 ; rem this is for +++ ; inc inc inc rem this is for [>++<-] ; arr ptr + get @loop1 rem this is for >. ; go-left output rem this is to free array ; arr free
No matter how many nested loops your BF has, your BF programs should be translated into Maentwrog, like the example above says.
--YamTokTpaFa (talk) 13:33, 17 May 2020 (UTC)