struct cell% field obj-print \ xt ( obj -- ) end-struct obj% : .obj { obj -- } obj obj obj-print @ execute ; obj% cell% field signed-val end-struct signed% : .signed ( signed -- ) signed-val @ . ; : new-signed { n -- signed } signed% %allot { signed } ['] .signed signed obj-print ! n signed signed-val ! signed ; obj% cell% field person-svnum \ 64 bits nötig bei einfacher Speicherung cell% field person-name-addr cell% field person-name-len end-struct person% : .person { person -- } person person-name-addr @ person person-name-len @ type ." SV-Nummer:" person person-svnum @ u. ; : new-person { svnum name-addr name-len -- person } person% %allot { person } ['] .person person obj-print ! svnum person person-svnum ! name-addr person person-name-addr ! name-len person person-name-len ! person ; person% cell% field student-matnr end-struct student% : .student { s -- } s .person ." Mat-Nr.: " s student-matnr @ . ; : new-student { svnum name-addr name-len matnr -- student } student% %allot { s } ['] .student s obj-print ! svnum s person-svnum ! name-addr s person-name-addr ! name-len s person-name-len ! matnr s student-matnr ! s ; : .objarray { addr len -- } len 0 ?do cr addr i cells + @ .obj loop ; 5 new-signed constant signed1 1234567890 s" Jane Doe" new-person constant person1 here 3 cells allot constant a signed1 a 0 cells + ! person1 a 1 cells + ! 9 new-signed a 2 cells + ! a 3 .objarray cr 9876543210 s" John Smith" 1499999 new-student constant student1 cr student1 .student cr student1 .person cr student1 .obj student1 a 2 cells + ! cr a 3 .objarray cr bye