Creating the required primitives in Assembly, and then the remaining userspace out from them.
Afterwards it is programming like most languages.
I have done it with Lisps though.
Also on 8 bit home computers it provided the feeling to be coding close to Assembly while being close enough to BASIC as high level language.