www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fragen zu Forth


Autor: Markus Burrer (Firma: Embedit Mikrocontrollertechnik) (_mb_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.
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?

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus Burrer schrieb:

> Was bedeutet es, wenn etwas in Klammern steht, z.B.
>
>
SWAP ( a b -- b a, exchanges top two values )

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.

Autor: Markus Burrer (Firma: Embedit Mikrocontrollertechnik) (_mb_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/JupiterAc... 
findet man alles, was man zum Nachbau benötigt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: Markus Burrer (Firma: Embedit Mikrocontrollertechnik) (_mb_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Fischer (funkentratzer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.