Hallo, ich will unter Py auf Ubuntu einen Forth-Compiler für diverse AVR-Controller aufsetzen. Hatte zuerst den Compiler von G.Henrichs gefunden, der aber nicht das macht, was mir vorschwebt. Zumal man den Source-Code nur erahnen kann und es eine Window-Applikation ist. Bevor ich alle Räder neu erfinde, frage ich mal, ob jemand sowas schon mal versucht hat. Ich bin mir darüber im Klaren, das dies nicht das Forum der ersten Wahl für mein Anliegen ist, aber dennoch... Danke und Gruß Rainer
> Bevor ich alle Räder neu erfinde, frage ich mal, ob jemand sowas schon > mal versucht hat. In den Elrads von 1983/84 war ein Forth-Compiler in Basic drin. Den kannst du vielleicht adaptieren. Das scheint mir damals aehnlich sinnvoll gewesen zu sein wie dein aktuelles Vorhaben. :-) Ansonsten waere noch zu erwaehnen das ich vor vielen Jahren einen solchen Compiler fuer die ST6 geschrieben habe der direkt Assembler geliefert hat. Das hatte damals noch eine geringe Berechtigung, aus heutiger Sicht wuerde ich das aber auch nicht mehr anstreben weil Projekte heute zu gross und umfangreich geworden sind um in Forth noch verstaendlich umsetzbar zu sein, und den eigentlichen Vorteil von Forth, auf der Zielhardware zu entwickeln, willst du ja dediziert nicht und ist heute dank moderner Debugger und schnellen Compiler auch nicht mehr notwendig. Olaf
Rainer V. schrieb: > Hallo, ich will unter Py auf Ubuntu einen Forth-Compiler für diverse > AVR-Controller aufsetzen. Was soll das denn für einen Sinn haben? AVR als Zielsystem ist wegen sein Hardard-Architektur denkbar ungeeignet für Forth. Und: der einzige nennenswerte Vorteil von Forth ist die Enwicklung direkt auf dem Zielsystem, aber gerade das willst du nicht, sondern einen Crosscompiler bauen. Und das auch noch mit einer Scriptsprache... > Hatte zuerst den Compiler von G.Henrichs > gefunden, der aber nicht das macht, was mir vorschwebt. Zumal man den > Source-Code nur erahnen kann und es eine Window-Applikation ist. Aha. Du willst also garnix selber machen, sondern einfach nur den nutzlosen Schwachsinn, der dir vorschwebt, fertig vorgesetzt bekommen. Damit wäre der letzte denkbare Sinn dieses Projekts (der Lerneffekt des Selbermachens, der dich dann zwingend zu o.g. Einschätzungen führen würde) auch noch den Bach runter...
Da neben Python auch Basic als Compilersprache gefordert bzw. empfohlen wurde, werfe ich mal FORTH selbst in den Ring. Stichwort: Meta-Compilation. Also ein FORTH-Compiler in FORTH selbst. Da gibts so ein paar Treffer, meine ich, von Charles Moore selbst, aber auch von anderen bekannten Autoren. (Falls Du nicht fündig wirst, schaue ich mal bei mir nach).
Noch eine Bemerkung zu Olafs Aussage:
> "... weil Projekte heute zu gross und umfangreich geworden sind um in Forth noch
verstaendlich umsetzbar zu sein ..."
Ich will nicht grundsätzlich abstreiten, dass große Projekte in FORTH
möglicherweise ein Problem darstellen. Allerdings hängt es meiner
Meinung nach vom Stil, von der Denkweise ab, in welchem Grad das der
Fall ist. Interessant scheint mir das Buch "Thinking FORTH" zu dem
Thema.
Ups. Da habe ich "Py" gelesen und "Python" verstanden. Sorry. Ich hoffe das macht nichts.
Doppel-Oooops und Doppel-Entschuldigung. Da steht ja Python in der Überschrift. Meine Güte. :-)
Hallo, danke für die vielen Antworten. Ich bitte jetzt erst mal um Entschuldigung, da es sich hier um eine Stammtisch-, also eine echte Schnaps-Idee handelt. Trotzdem habe ich ein wenig gesucht und allerhand interessante Sachen entdeckt. Olaf schrieb: > Olaf Ja, Olaf, ungefähr in dieser Zeit hatte ich erste Berührung mit Forth auf meinem Atari. War natürlich nicht sehr tief...also eher Spielerei...ich liebe aber Spielerein. Theor schrieb: > Doppel-Oooops und Doppel-Entschuldigung. Da steht ja Python in der > Überschrift. Meine Güte. :-) Und ja, Theor, vielleicht nicht ganz so hektisch :-) Kenne Forth leidlich, habe aber nie wirklich was damit machen können! Wurde zumindest in meinem "professionellen" Umfeld immer als exotisch und unbrauchbar abgelehnt. Ich weiß, dass es diverse Metacompiler für diverse Platformen gibt und zumindest der Sage nach macht man in Forth ja alles problemlos in Forth selbst. Also dachten wir uns, in Python ein Forth zu implementieren, mit dem man dann Code für "beliebige" Controller erzeugen kann. Habe mittlerweile einige Forth-Grundstrukturen in Python gefunden und denke, dass ich auf der Basis mal ein Forth-System hochziehen werde. Die fertigen Forth-Systeme reizen mich da weniger...selbst machen ist angesagt... Und natürlich sind wir ein Rentnerverein, der sonst fast nichts zu tun hat. Gruß Rainer
Hi, @Rainer V. Deine Anfrage klingt, als suchts Du einen Crosscompiler. Das ist bei Forth aber absolut unnötig. Normalerweise reicht ein minimaler Kernel in C, der Rest ist in Forth selbst geschrieben. Gerade für kleine µC super einzusetzen. Allerdings ist Forth so anders als andere Sprachen, dass dauert ne Weile bis man in der "Forth-Denke" zu Hause ist. Auch das Bottom-Up Programmieren ist nicht so verbreitet. Forth macht aber Spaß! Google "forth c" http://www.softsynth.com/pforth https://gist.github.com/lbruder/10007431 BG, Tom
Thomas H. schrieb: > BG, Tom Hi Tom, ja, das trifft es im großen und ganzen, aber erstens mag ich kein "C" und will mich da nimmermals auch nur einen Zentimeter einarbeiten. Sorry... Und wenn mann erst mal eine Forth-Engine laufen hat, dann geht ja alles wie von selbst :-) PForth habe ich mir auch schon angeschaut...ist mir aber zu bombastisch. Ein kleines System mit "Quit" und ein paar "primitiven" Worten unter Python schwebt mir vor. Und dann das Dictionary aufbauen. Und das "forthische" Denken habe ich schon irgenwie....Besitze übrigens den Zech...falls das irgend jemand was sagt.. Gruß Rainer
Rainer V. schrieb: > [...] > Theor schrieb: >> Doppel-Oooops und Doppel-Entschuldigung. Da steht ja Python in der >> Überschrift. Meine Güte. :-) > > Und ja, Theor, vielleicht nicht ganz so hektisch :-) Versprochen! :-) > Kenne Forth > leidlich, habe aber nie wirklich was damit machen können! Wurde > zumindest in meinem "professionellen" Umfeld immer als exotisch und > unbrauchbar abgelehnt. Gerüchteweise wird es immer noch verwendet - auch für grosse Projekte. > Ich weiß, dass es diverse Metacompiler für diverse Platformen gibt und > zumindest der Sage nach macht man in Forth ja alles problemlos in Forth > selbst. > Also dachten wir uns, in Python ein Forth zu implementieren, mit dem man > dann Code für "beliebige" Controller erzeugen kann. Habe mittlerweile > einige Forth-Grundstrukturen in Python gefunden ... Ah. Magst Du da mal die Links posten? Finde ich interessant. Rainer V. schrieb: > Thomas H. schrieb: >> BG, Tom > > [...] > PForth habe ich mir auch schon angeschaut...ist mir aber zu bombastisch. > Ein kleines System mit "Quit" und ein paar "primitiven" Worten unter > Python schwebt mir vor. Und dann das Dictionary aufbauen. Und das > "forthische" Denken habe ich schon irgenwie....Besitze übrigens den > Zech...falls das irgend jemand was sagt.. > Gruß Rainer Ronald Zech, ja, sagt mir was und habe ich. Leo Brodie gibts online. Für Neuimplementierungen mag http://www.bradrodriguez.com/papers/moving1.htm interessant sein. Rodriguez ist ja auch ein bekannter Name in dem Feld. (Ich vermute, dass Du schon das Netz abgegrast hast und Sachen wie forth.org auch bekannt sind).
Ich checks nicht. Wie soll ein Forth System in Python Code für "beliebige" Controller erzeugen?
Vincent H. schrieb: > Ich checks nicht. Wie soll ein Forth System in Python Code für > "beliebige" Controller erzeugen? Naja. Lach. Genau genommen ist das eine verkürzte Ausdrucksweise. Das darf man nicht wörtlich nehmen. Natürlich wäre es reine Magie, wenn eine Software ohne Informationen über den Zielprozessor Code dafür erzeugen könnte. Und da jeder Prozessor anders ist, Information also bei neuen Prozessoren hinzugefügt werden muss, kann ein bestimmter Stand dieser SW nur für einen begrenzten Satz an Prozessoren Code erzeugen. Was gemeint ist, ist (denke ich) dass die Struktur der SW so abstrahiert ist, dass sich Information und spezifische Hilfsfunktionen über und für neue Prozessoren einfach und in einer vereinheitlichten Form hinzufügen lassen. Eine ähnliche Aussage könnte man in Bezug auf C-Compiler machen. Und sie ist ebenso wenig wörtlich zu nehmen. "Ein C-Compiler der Code für beliebige Prozessoren erzeugen kann" ist aus den o.a. Gründen nicht möglich. Allerdings wird mittlerweile das Parsen, der Aufbau des Syntaxbaumes etc. von dem sogenannten "Front-End", dass den Maschinencode erzeugt, organisatorisch getrennt. Es muss also das Front-End "nur" erweitert resp. ausgetauscht werden. So ist das zu verstehen.
Ich versteh' nicht, warum Python hier eine Rolle spielt. Wenn's fertig ausgebrütet ist, ist's doch egal, wer ursprünglich das Ei gelegt hat - der erste Forth-Compiler wird dann in Forth neu gebaut. Und da gibt's durchaus Fertiges für µC. Hier, z.B.: https://github.com/larsbrinkhoff/lbForth
Theor schrieb: > (Ich vermute, dass Du schon das Netz abgegrast hast und Sachen wie > forth.org auch bekannt sind). Ja, sind bekannt...und gegen den Zech ist L.Brodie für mich keine Option, obwohl er Anfängern immer noch sehr zu empfehlen ist! ...aber egal... Theor schrieb: >> Ich checks nicht. Wie soll ein Forth System in Python Code für >> "beliebige" Controller erzeugen? Wie Theor schon richtig geschrieben hat, will ich die Forth-Maschine in Pyton aufsetzen und dort wird dann "beliebiger Code für beliebige Prozessoren" erzeugt. Stelle mir das augenblicklich noch so vor, dass es diverse Assembler-Vokabulare gibt, mit denen dann ein virtuelles System des Zielprozessors gebaut wird. Ob da dann wiederum ein Forth läuft oder nur lauffähiger Code erzeugt wird, hängt natürlich vom Zielprozessor ab. Noch AMForth auf Atmegas läßt kaum noch Raum für eigene Wörter, obwohl man wegen des modularen Aufbaus des Systems natürlich einiges Optimieren kann! Python unter Linux habe ich erst vor einigen Monaten begonnen zu lernen und ich suche halt "sinnvolle" Programmieraufgaben, um weiter in Py zu lernen/üben. Ich kenne auch Zimmers Forth und das Visual-Forth...leider alles unter Windows und leider als "Visual" zwar beeindruckend, aber doch sehr bescheiden. Da sind die graphischen Möglichkeiten mit Py doch um einiges besser. Danke für das Interesse an einer jecken Idee! Gruß Rainer Theor schrieb: > Ah. Magst Du da mal die Links posten? Finde ich interessant. ...such einfach mal "Python" und "Forth"...ist wirklich interessant!
Python ist schon insofern nah am Forth-ansatz, dass es eine virtuelle Stack-Maschine ist. Koennte interessant sein, aus Forth Python-Bytecode zu machen. Andersrum wäre es allerdings noch interessanter.
Hallo, habe gerade noch mal in der Th. reingeschaut, weil er noch nicht von der ersten Seite verschwunden ist und wundere mich, dass so viele für mich anregende Beiträge mit einem "-1" bewertet werden! Die eher interessanten Beiträge aber gar nicht. Wie kann man das verstehen?? Danke und Gruß Rainer PS: habe mich jetzt erst mal wieder mit einer graphischen Oberfläche fürs Programm herumgeschlagen. Läuft aber mittlerweile und ich bin an der virtuellen Forth-Maschine.
Thomas H. schrieb: > Hi, > > @Rainer V. > Deine Anfrage klingt, als suchts Du einen Crosscompiler. Das ist bei > Forth aber absolut unnötig. Normalerweise reicht ein minimaler Kernel in > C, der Rest ist in Forth selbst geschrieben. Gerade für kleine µC super > einzusetzen. Allerdings ist Forth so anders als andere Sprachen, dass > dauert ne Weile bis man in der "Forth-Denke" zu Hause ist. > Auch das Bottom-Up Programmieren ist nicht so verbreitet. > Forth macht aber Spaß! > > Google "forth c" > http://www.softsynth.com/pforth > https://gist.github.com/lbruder/10007431 > > BG, Tom Wenn du Forth gut kannst und eventuell etwas Zeit hast kannst du im Telegram kanal der Skycoin mal schauen ob das was für dich ist, dort suchen sie fähige Leute.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.