Nazuki ("the brain" in Old Japanese) is a compiler toolchain for generating Brainfuck code. It is implemented in Haskell.
Try it out on your browser: https://n4o847.github.io/nazuki-hs/
Nazuki consists of three layers: NazukiScript, NazukiAssembly and NazukiVM.
NazukiScript is the most high-level script language that can be written like Python.
a = scan()
b = scan()
print(a + b)
NazukiAssembly is the low-level assembly language that consists of a sequence of instructions and labels.
scan
scan
add
print
The generated instruction sequence is embedded into Brainfuck code along with the virtual machine code that interprets and executes the instructions.
NazukiVM is (currently) a 32-bit stack machine with a text segment and a stack segment.