>Und deine Frage ist jetzt?
Es scheint so zu sein, dass es keinen Standard für ein objekorientiertes
Forth gibt. Der Syntax im geposteten Artikel-Link oben und im Link zur
Uni-Wien ist unterschiedlich.
Ich will ein einfache Möglichkeit, Objekte schnell zu definieren und
darzustellen, wie z.B.
Diese Stack-Orientierung mit UPN muß man aber wirklich mögen und
wollen...
Ich hielt Forth immer für ein Relikt aus den Anfängen der Computerei,
aus der Not der Ressourcenknappheit auf den damaligen Systemen heraus
geboren.
Hätte nicht gedacht, daß sich heute noch Jemand damit beschäftigt.
Das war damals (1983) schon sehr progressiv, denk auch an Smalltalk (die
beruehmte Implementierung Smalltalk-80) oder auch Lisp (Emacs, auch ca.
1980). Die RPN (reverse polish notation) fand ich schon damals
antiquiert, aber viele Ingenieure schworen darauf (der Uebergang vom
Rechenschieber zum Taschenrechner war wohl traumatisch fuer sie).
Heute ist es natuerlich schoen, dass Du fuer sehr wenig Geld (und
elektrische Leistung) Rechenleistung und Speicherplatz bekommst von
denen man damals noch nicht einmal Traeumen konnte.
Weisst Du ob es ein Entwicklungssystem fuer Forth gibt?
Thomas W. schrieb:> Das war damals (1983) schon sehr progressiv,
Müsste schon irgendwann in den Siebzigern gewesen sein. Ich habe hier
noch ein deutsches Forth Handbuch von 1982 liegen (E.Floegel).
Auch damals lagen wir schon ein Jahrzehnt mit solchen Dingen zurück.
Im Übrigen würde ich sagen, Forth ist das Entwicklungssystem.
Und so kann man's bekommen:
Christoph M. schrieb:>>Und deine Frage ist jetzt?> Es scheint so zu sein, dass es keinen Standard für ein objekorientiertes> Forth gibt. Der Syntax im geposteten Artikel-Link oben und im Link zur> Uni-Wien ist unterschiedlich.
Es gibt kein Forth Standard. Es gibt ein paar Standard-Token, aber schon
die Ausgabe ist implementierungsabhaengig. Und dann kannst Du eigene
Dictionaries definieren. It's the beauty of it.
Christoph M. schrieb:> Wahrscheinlich ist FORTH ein ziemlich exotisches Thema hier, aber ich> probiere es trotzdem mal:
Mein erster Computer* wurde in Forth programmiert. Ein
graphikorientiertes Forth hab' ich dann auch noch auf einem anderen
Computer ausprobiert ... und das hat mir als Begegnung mit dieser
Write-Only-Sprache völlig gereicht.
Wenn man mit einem HP-Taschenrechner sozialisiert wird, also die
Gehirnwindungen früh genug entsprechend verbogen werden, kommt man mit
stackorientierten Programmiersprachen sicherlich bestens zurecht und
kann beispielsweise auch in PostScript tolle Dinge anstellen.
Wenn aber nicht ...
<Pedanterie> Syntax ist weiblich. </Pedanterie>
*) Jupiter ACE. Z80, 3 kB RAM, davon grob 900 Byte für Programme und
Daten nutzbar. Forth-Interpreter in 8 kB ROM, der Quelltext gleich in
Tokens übersetzte (und damit mit 900 Byte doch etwas mehr möglich machte
als ein simples "hello world").
Christoph M. schrieb:> Wobei mir die Zeile1 50 circle heap-new constant my-circle>> nicht ganz klar ist und umständlich erscheint (was soll die 50 auf> "heap-new constant" würde ich auch gerne verzichten.
Ich habe ja nun wirklich keine Ahnung von Forth, aber das, was die da
schreiben, klingt ziemlich sinnvoll:
1
Now we can create a circle on the heap (i.e., allocated memory) with:
2
3
50 circle heap-new constant my-circle
4
heap-new invokes construct, thus initializing the field circle-radius with 50. We can draw this new circle at (100,100) with:
> Für graphische Anwendungen wäre ein objektorientiertes Forth nicht> schlecht.
Darueber kann man natuerlich geteilter Meinung sein, aber ich meine doch
das HP das vor 30Jahren fuer den HP48SX erfunden hat.
Vanye
Oliver S. (oliverso)
30.10.2025 09:45
>Ich habe ja nun wirklich keine Ahnung von Forth, aber das, was die da>schreiben, klingt ziemlich sinnvoll:> Now we can create a circle on the heap (i.e., allocated memory) with:
Ah, jetzt ist es klarer.
Ich hätte gerne so einen Syntax:
1
20 10 "mytext" textoutput
2
"hallo" mytext
3
10 delay
4
"nix" mytext
Das soll ein Text-Output Object an der Position 20,10 kreieren und dann
erst "hallo" und danach "nix" dahin schreiben. Was haltet ihr von diesem
Syntax?
Thomas W. schrieb:> Ich meinte etwas Neues, z.B. VSCode- oder Eclipse-basiert?
Ich weiß auch nicht wie's passieren konnte,
aber gerade fiel mir sofort Ardu-Forth ein,
unmittelbar gefolgt von Forthuino.
Christoph M. schrieb:> Was haltet ihr von diesem> Syntax?
Deine Entscheidung. Wenn die Forth Syntax und Semantik deines Forth es
her geben bau es dir genau so. Du bist dein eigener König in deinem
eigenen Forth-Königreich.
Das war in Forth schon immer so. Zuerst baut man sich eine DSL, mit der
DSL löst man sein Problem.
Hannes J. schrieb:> Das war in Forth schon immer so. Zuerst baut man sich eine DSL, mit der> DSL löst man sein Problem.
Das ist für viele, die in Forth reinschnuppern anfangs recht verstörend,
ebenso wie die UPN.
Einer meiner Ausbilder sagte mal recht salopp:
In anderen Sprachen (er meinte in Hauptsache C und Pascal) muss man das
"Problem" solange modifizieren und beschneiden, bis man es in der
Sprache abfassen kann.
In Forth verändert man die Sprache solange, bis sie die Problemstellung
vollständig widerspiegelt.
In anderen Sprachen fügt man einfach eine neue Funktion hinzu, zum
Beispiel zum Zeichen eines Kreises. Wenn das in Forth bereits als
Spracherweiterung gilt, dann sieht man daran die "Höhe" dieser
Hochsprache.
Hannes J. (pnuebergang)
30.10.2025 10:12
>Deine Entscheidung. Wenn die Forth Syntax und Semantik deines Forth es>her geben bau es dir genau so. Du bist dein eigener König in deinem>eigenen Forth-Königreich.
Ich denke, du liegst falsch. Schau dir den Syntax meines Beispiels noch
mal genau an.
Christoph M. schrieb:> Hannes J. (pnuebergang)> 30.10.2025 10:12>>Deine Entscheidung. Wenn die Forth Syntax und Semantik deines Forth es>>her geben bau es dir genau so. Du bist dein eigener König in deinem>>eigenen Forth-Königreich.>> Ich denke, du liegst falsch. Schau dir den Syntax meines Beispiels noch> mal genau an.
Wie? Ich liege falsch dass das deine Entscheidung ist? Na dann, wessen
Entscheidung soll es denn sein? Ach egal, wenn du nicht machen willst
was du selber willst dann lass es halt.
Johann L. schrieb:> In anderen Sprachen fügt man einfach eine neue Funktion hinzu, zum> Beispiel zum Zeichen eines Kreises.
In den anderen Sprachen ist exakt definiert, wie eine Funktion aufgebaut
wird, wie Anweisungen auszusehen haben.
C hat irgendwas um Hundert Schlüsselworte.
Rigide Syntaxregeln.
Forth hat nichts davon.
Forth kennt nur Worte.
Diese Worte werden (meist) durch Whitespaces voneinander getrennt.
Das war es schon an Syntaxregeln.
Jedes Wort ist jederzeit redefinierbar, also auch mitten im laufendem
Betrieb.
Also, ja, es wird die Sprache selber verändert. Das ist das normale
Vorgehen wenn man mit einem Forth System arbeitet. z.B. das hinzufügen
von spezialisierten Compilern und Interpretern.
Der Streit ob Forth nun eine Hochsprache ist, wird seit Jahrzehnten
geführt.
Ich sage:
Der Punkt ist falsch, die Frage ist falsch, der Gedanke ist falsch, die
Annahme ist falsch.
Forth ist eher eine Philosophie, als eine Sprache.
Forth ist eher ein System, als eine Sprache.
Arduino F. schrieb:> Forth ist eher eine Philosophie, als eine Sprache.
Ja, ich habe den Link auf das Forth-Manifesto im Transputer Thread
gesehen.
300+ Seiten, die man sich erst mal reinziehen muss, um die Hirnwindungen
forthkompatibel zu bekommen.
Johann L. schrieb:> um die Hirnwindungen> forthkompatibel zu bekommen
Ja!
Das ist ein Projekt.
Glaube auch nicht, dass das es jeder bis in die Komfortzone schafft.
Vorbildung in anderen Sprachen dürfte da eher hinderlich, als hilfreich,
sein
Arduino F. schrieb:> Glaube auch nicht, dass das es jeder bis in die Komfortzone schafft.
Nachdem die Sprache im Pleistozän der Programmiersprachen ersonnen
wurde, und seit dem ein scheintotes Dasein fristet, wirds wohl überhaupt
niemand überhaupt versuchen.
Oliver