Discussion:
Newbie: Forth source in mehreren Zeilen
(zu alt für eine Antwort)
Sebastian
2021-01-02 10:36:41 UTC
Permalink
Hallo,

ist es möglich Forth Code über mehrere Zeilen zu verteilen? Ich würde gern ohne dass der Interpreter gleich nach einem Return den Befehl ausführt für mich den Code "besser" darstellen können.

Bisher habe ich nur die Möglichkeit innerhalb einer Word Definition gefunden.
In anderen Programmiersprachen gibt es dafür meist ein gesondertes Zeichen am Ende wie Backslash oder bei COBOL in Spalte 7...

Danke
Anton Ertl
2021-01-02 10:58:27 UTC
Permalink
Post by Sebastian
Hallo,
ist es m=C3=B6glich Forth Code =C3=BCber mehrere Zeilen zu verteilen? Ich w=
=C3=BCrde gern ohne dass der Interpreter gleich nach einem Return den Befeh=
l ausf=C3=BChrt f=C3=BCr mich den Code "besser" darstellen k=C3=B6nnen.
Bisher habe ich nur die M=C3=B6glichkeit innerhalb einer Word Definition ge=
funden.=20
Ja, der Text-Interpreter arbeitet Zeile fuer Zeile, und es gibt in den
Systemen, die ich kenne, keine Moeglichkeit fuer continuation lines
o.ae., also aus mehreren Source-Zeilen eine Zeile fuer den
Text-Interpreter zu machen.

Ich habe aber auch noch keinen Bedarf danach gespuert. Wenn ich
interpretierten Code in eine Datei schreibe, wird's erst
interpretiert, wenn ich die Datei z.B. mit INCLUDE interpretiere. Das
einzige, wo das nuetzlich waere, ist bei Strings, aber dieses Problem
ist nicht so draengend, dass es zu continuation lines gefuehrt haette,
zumindest bisher.

- anton
--
M. Anton Ertl Some things have to be seen to be believed
***@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html
none) (albert
2021-01-02 15:40:34 UTC
Permalink
Post by Anton Ertl
Post by Sebastian
Hallo,
ist es m=C3=B6glich Forth Code =C3=BCber mehrere Zeilen zu verteilen? Ich w=
=C3=BCrde gern ohne dass der Interpreter gleich nach einem Return den Befeh=
l ausf=C3=BChrt f=C3=BCr mich den Code "besser" darstellen k=C3=B6nnen.
Bisher habe ich nur die M=C3=B6glichkeit innerhalb einer Word Definition ge=
funden.=20
Ja, der Text-Interpreter arbeitet Zeile fuer Zeile, und es gibt in den
Systemen, die ich kenne, keine Moeglichkeit fuer continuation lines
o.ae., also aus mehreren Source-Zeilen eine Zeile fuer den
Text-Interpreter zu machen.
Ich habe aber auch noch keinen Bedarf danach gespuert. Wenn ich
interpretierten Code in eine Datei schreibe, wird's erst
interpretiert, wenn ich die Datei z.B. mit INCLUDE interpretiere. Das
einzige, wo das nuetzlich waere, ist bei Strings, aber dieses Problem
ist nicht so draengend, dass es zu continuation lines gefuehrt haette,
zumindest bisher.
Auszerdem is est moeglich ein Wort zu definieren dasz mehrzeilige strings
erlaubt. Wie so
"
Hello cruel world!
;-)
" TYPE

Es is Forth. Du brauchst niemals zufrieden zu sein mit wasz
drin ist.
Also versehe
: " [CHAR] " PARSE ;
mit ein BEGIN .. UNTIL ;
Post by Anton Ertl
- anton
Groetjes Albert
--
This is the first day of the end of your life.
It may not kill you, but it does make your weaker.
If you can't beat them, too bad.
***@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst
Sebastian
2021-01-02 16:07:00 UTC
Permalink
In article
Post by Anton Ertl
Post by Sebastian
Hallo,
ist es m=C3=B6glich Forth Code =C3=BCber mehrere Zeilen zu verteilen? Ich w=
=C3=BCrde gern ohne dass der Interpreter gleich nach einem Return den Befeh=
l ausf=C3=BChrt f=C3=BCr mich den Code "besser" darstellen k=C3=B6nnen.
Bisher habe ich nur die M=C3=B6glichkeit innerhalb einer Word Definition ge=
funden.=20
Ja, der Text-Interpreter arbeitet Zeile fuer Zeile, und es gibt in den
Systemen, die ich kenne, keine Moeglichkeit fuer continuation lines
o.ae., also aus mehreren Source-Zeilen eine Zeile fuer den
Text-Interpreter zu machen.
Ich habe aber auch noch keinen Bedarf danach gespuert. Wenn ich
interpretierten Code in eine Datei schreibe, wird's erst
interpretiert, wenn ich die Datei z.B. mit INCLUDE interpretiere. Das
einzige, wo das nuetzlich waere, ist bei Strings, aber dieses Problem
ist nicht so draengend, dass es zu continuation lines gefuehrt haette,
zumindest bisher.
Auszerdem is est moeglich ein Wort zu definieren dasz mehrzeilige strings
erlaubt. Wie so
"
Hello cruel world!
;-)
" TYPE
Es is Forth. Du brauchst niemals zufrieden zu sein mit wasz
drin ist.
Also versehe
: " [CHAR] " PARSE ;
mit ein BEGIN .. UNTIL ;
Post by Anton Ertl
- anton
Groetjes Albert
--
This is the first day of the end of your life.
It may not kill you, but it does make your weaker.
If you can't beat them, too bad.
Danke mit Wörtern stehe ich noch ein bisschen auf Kriegsfuss, um nicht zu sagen mit Forth als Ganzes.

z.B (gforth 0.7.3):

: .F see .F ; ( .F wird nicht als Word definiert )
: .F . ; ( .F erfolgreich definiert )
0 .F ( OK, alles wie erwartet )
: .F see .F ; ( .F wird jetzt als Word definiert - angeblich redefiniert, wohl nur zusätzlich - erklärt ein bisschen die erste Zeile)
.F ( error Undefined Word - wie jetzt? )
words ( .F tatsächlich sogar 2x definiert! )
see .F ( zeigt auch die erste Definition an)


Alles sehr suspekt, wenn man auch einer anderen Sprachwelt kommt.

Sebastian
Anton Ertl
2021-01-03 12:31:30 UTC
Permalink
Post by Sebastian
: .F see .F ; ( .F wird nicht als Word definiert )
: .F . ; ( .F erfolgreich definiert )
0 .F ( OK, alles wie erwartet )
: .F see .F ; ( .F wird jetzt als Word definiert - angeblich redefiniert, w=
ohl nur zus=C3=A4tzlich - erkl=C3=A4rt ein bisschen die erste Zeile)
.F ( error Undefined Word - wie jetzt? )
Eine irrefuehrende Fehlerbeschreibung. Probiere:

5 .f erase

und Du siehst, dass das SEE in .F *zur Laufzeit* den Namen eines
Wortes erwartet, und dieses Wort dann decompiliert. Das .F hinter dem
SEE ruft dann einfach nur die vorige Definition von .F auf und gibt
"5 " aus.
Post by Sebastian
Alles sehr suspekt, wenn man auch einer anderen Sprachwelt kommt.
Parsende Woerter sind auch fuer langjaehrige Forther ein Quell von
Problemen und Diskussionen ("sind boese" vs. "musst halt aufpassen,
selber schuld").

- anton
--
M. Anton Ertl Some things have to be seen to be believed
***@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html
Loading...