Ich lese mich gerade in Forth ein, weil ich das irgendwie spannend
finde. Ein paar Sachen hab ich noch nicht ganz verstanden
Was bedeutet es, wenn etwas in Klammern steht, z.B.
1
SWAP ( a b -- b a, exchanges top two values )
Ist das lediglich eine Art Kommentar? Ich habe nicht den Eindruck, als
hätte das einen Einfluss auf das Programm.
amforth vs. avrforth: Beides sind Implementierungen, die aktuell
entwickelt werden. amforth scheint vor allem auf kleinere AVR
zugeschnitten zu sein und braucht kein externes RAM. avrforth läuft,
soweit ich das bisher gesehen habe, nur auf dem ATmega64/128 oder CAN128
und braucht anscheinend auch externes RAM.
Ist avrforth umfangreicher? Kann man die Wörter von avrforth auch für
amforth nutzen?
hab grade mal im Forth-Handbuch zum AIM65 nachgelesen (mein erster
Computer 1979), das muß ein Kommentar sein. Mit SWAP werden die beiden
obersten Variablen auf dem Stack getauscht, mit .S kann man den
Stackinhalt auflisten lassen.
Das ist die Forth übliche Dokumentation in Form eines KOmmentares. Er
zeigt, welche Auswirkungen die Operation auf dem Stack hat
Stackinhalt_vor_der_Operation -- Stackinhalt_nach_der_Operation
Hier ist es: a und b werden auf dem Stack vertauscht.
Ok, danke. Also was ich vermutet habe. Fand es nur befremdlich, dass
diese Schreibweise in sämtlichen Dokumentationen einfach so auftaucht,
ohne näher erläutert zu werden bzw der Hinweis gut versteckt war, dass (
) auch Kommentare sind. Gedit zeigt es leider nicht als Kommentar an.
Bei avrforth habe ich inzwischen gesehen, dass wohl auch kleinere AVR
möglich sind, einschließlich Mega8. Bei avrforth scheinen mehr Module
dabei zu sein, dafür ist die Dokumentation mehr oder weniger inexistent.
Welches der beiden sollte man sich denn näher anschauen?
Es gab mal einen Homecomputer, der mit Forth programmiert wurde, der
Jupiter ACE. Das Gerät hatte aus verschiedenen Gründen keinen
erwähnenswerten wirtschaftlichen Erfolg, so hatte es nur 3 kiB RAM, von
dem 956 Bytes für eigene Programme und Daten zur Verfügung standen ...
OK, das war 1983.
http://www.jupiter-ace.co.uk/index.html
Hier http://home.micros.users.btopenworld.com/JupiterAce/JupiterAce.html
findet man alles, was man zum Nachbau benötigt.
Markus Burrer schrieb:> Bei avrforth habe ich inzwischen gesehen, dass wohl auch kleinere AVR> möglich sind, einschließlich Mega8.
Wundert mich nicht.
Der Forth Kern, der in Assembler geschrieben ist, ist ja extrem winzig.
Alles andere darüber ist schon in Forth selber geschrieben. Und je
nachdem, kann man natürlich auch viele Worte einfach weglassen, sofern
nicht andere Worte darauf aufbauen.
> Welches der beiden sollte man sich denn näher anschauen?
Wenn du anfängst, würde ich das einfachste Forth nehmen, das ich kriegen
kann.
Ich muss allerdings dazu sagen, dass ich mir Forth auch schon ein paar
mal angesehen habe und dann doch immer wieder die Finger davon gelassen
habe. Für mich ist diese konsequente Umsetzung der UPN eben nichts. Ich
persönlich komm da immer durcheinander. Das mag daran liegen, dass ich
einfach schon zu viel in der "konventionellen" Programmierung versumpft
bin und meine Denkweise nicht mehr so einfach umstellen kann.
Letzten Endes ist es aber so, dass der Forth-Basiswortschatz überall
gleich ist. Lediglich spezifische Erweiterungen unterscheiden das eine
vom anderen Forth. (So war das auch vom Erfinder gedacht: Forth ist eine
Sprache, mit der man sich seine 'Befehle' anwendungsspezifisch
zusammensetzt)
Karl heinz Buchegger schrieb:> Wundert mich nicht.> Der Forth Kern, der in Assembler geschrieben ist, ist ja extrem winzig.> Alles andere darüber ist schon in Forth selber geschrieben. Und je> nachdem, kann man natürlich auch viele Worte einfach weglassen, sofern> nicht andere Worte darauf aufbauen.
Ich dachte eher an das RAM. Ich hab eine (ältere) Implementierung
gesehen, für die man externes RAM benötigt hat
Karl heinz Buchegger schrieb:> Wenn du anfängst, würde ich das einfachste Forth nehmen, das ich kriegen> kann.
Einfach ist relativ. Beide genannten Implementierungen scheinen ähnlich
zu sein. amforth ist besser dokumentiert, avrforth bringt mehr "Treiber"
mit. Werde versuchen, mal beide zu testen
Hallo Markus,
wenn Du Mittwoch abends Zeit hast:
http://forth-ev.de/article.php/20080120222945626
Da hängt auch der Matthias Trute (amforth) regelmässig ab, und man kann
Fragen stellen.
Servus,
Peter