rainer,
"unstrukturiert" .. doch, kann man. das brauch aber ein paar kunstgriffe. es gibt mindestens zwei methoden, das zu tun:
durch den freien zugang auf den returnstack steht es die frei, die eigentliche rücksprungsaddresse, die am ende eines high-level wortes zum aufrufenden zurückführen würde, zu ersetzen. Das kommt einem GOTO am Ende des wortes relativ nahe.
oder du kompilierst ein wort, welches einen branch, gefolgt von einer sprungadresse (oder einem offset zur zieladresse) kompilert, wenn dieses wort abgearbeitet wird. zur namensgebung dieses wortes könnte man vorschlagen: GOTO
und bei forth systemen bei denen keine kontrolle auf balancierte flow control strukturen am ende vom wort gemacht wird, ließen sich recht eigenartige sachen machen. recht bekannt ist z.b.:
: min 2dup < if begin drop ;
: max 2dup < until then nip ;
nenn das mal strukturiert

Aber das ulkige an diesem letzten beispiel ist, auch wenns nicht so aussieht ... es *ist* strukturiert. strikt genommen. wenn du nicht mitrechnest, daß das erste semicolon ja eher ein exit mitten in der struktur darstellt.
und noch zwei weiter "unstrukturierte" sachen:
exit mittem im wort, und die populärer werdenden worte lest und unless, welche konditionelle exits darstellen, und beide erlauben, in der mitte eines wortes dessen weitere abarbeitung zu beenden.
also es geht schon, wenn man schon will. wär ja auch recht restriktiv, wenn eine programmiersprache sowas nicht zulassen würde
