Forth Brainfuck EDSL

2022/06/15

Brainfuck as (g)forth Embedded Domain-Specific Language (EDSL). Meaning, Brainfuck as embedded within the constructs of Forth.

VARIABLE ARRAY 1000 CELLS ALLOT
ARRAY 1000 0 FILL

VARIABLE APTR
ARRAY APTR !

: RESET
    ARRAY 1000 0 FILL
    ARRAY APTR !
    ;

: PEEK APTR @ @ ;
: POKE APTR @ ! ;

: < APTR @ 1 CELLS - APTR ! ;
: > APTR @ 1 CELLS + APTR ! ;
: + PEEK 1+ POKE ;
: - PEEK 1- POKE ;
: . PEEK . ;
: , KEY POKE ;
: [ POSTPONE BEGIN POSTPONE PEEK POSTPONE WHILE ; IMMEDIATE
: ] POSTPONE REPEAT ; IMMEDIATE

\ example programs:
: echo , [ . , ] ;
: add , > , [ < + > - ] < . ;

Source