The stack is made up of ints, whatever size they are on the host machine. String storage is used to store the names of built-in and defined primitives. Separate storage is used for these because it allows the C code to use C string operations, reducing C source code size.
Main memory is a large array of ints.
When we speak of addresses, we actually mean indices into main memory. The dictionary is a list of words. Each word contains a header and a data field. There are several important pointers into main memory. There is a pointer to the most recently defined word, which is used to start searches back through memory when compiling words.