W
Wolfgang Allinger
Guest
## forwarded copy of: EruqxzAUQoB@allinger-307049.user.uni-berlin
## date : 15.08.19
## newsgroup/archive: de.sci.electronics
## user : all2001@spambog.com (Wolfgang Allinger)
Örks, das sollte unter anderem subject raus, neuer Versuch, damit mans
wiederfindet
On 15 Aug 19 at group /de/sci/electronics in article grl5qvFi07iU1@mid.individual.net
<DrDiettrich1@aol.com> (Hans-Peter Diettrich) wrote:
Kannst jedes dafür nehmen, was auf entsprechende Umgebung zugreifen kann.
Ich hab z.B. ausführbare Schriftstücke an meine Kunden verschickt, also
z.B. startup_4712.src, das System hab ich so eingerichtet, dass es beim
Start in einem bestimmten Verzeichnis (START nach ner neuen Datei
gesucht hat, wenn es die gefunden hat wurde die einfach interpretiert/
compiliert und die Anlage war wieder auf dem neuesten Stand.
So konnte man Patches oder Versuche einspielen, so dass der Kunde die
Abläufe/Parameter anpassen konnte. Wenn er zB. ne Kalibrierung geändert
hatte konnte er damit arbeiten, wenn er wollte, dann einfach
"startup_4712.src FSAVE" (kurz für FileSave) tippern und ENTER. Beim
nächsten Start war es dann, als wenns immer schon so geplant war.
Wenns nix war, dann per Editor, zB. dem im benutzten FORTH eingebauten
oder einen externen nehmen und startup_xxxx.src verbasteln.
Und warten, bis der eingewiesene Programmierer oder der Allinger ne
angepasste exe lieferte.
FORTH ist halt ein Interpiler und Compreter gleichzeitig.
Die Kunden (häufig Maschbauer) waren begeister, wie einfach sie was
verfummeln oder probieren konnten.
kurzes langatmiges Gesabbel von mir:
Beispiel Anfrage: wir ham jetzt 999 Geräte die nach einer besonderen
Justierung justiert werden sollen, wie geht das? Ich hab denen dann eine
datei geschickt, wo die HLL Definitionen drinstanden. Konnte er dann beim
nächsten Start mit der Eingabe Typ999 starten, wenn er wieder ein paar
normale Geräte dazwischen fahren wollte, dann eben nur START eingeben bzw.
das als letztes Wort in die update_Typ999 reinfrickeln, oder wenns
dauerhaft bleiben sollte, dann eben \ (Backslash) START einflicken und
darunter die Zeile Typ999 reinschreiben. Falls doch wieder wankelmütig,
dann eben das Kommentarwort "\ " vor Start weg und gut wars.
Alles was FORTH im Eingabestrom (prompt OK ) liest, wird bei einem <SP>
oder EOL als Wort behandelt und im Wörterverzeichnis nachgeschlagen und
ausgeführt, wenns nicht gefunden wurde, wurde versucht es als Zahl zu
verwursten, wenn ja, dann wurde die Zahl auf den STACK gelegt und weiter
geparst, wenn nicht, weil BlaFasel nicht gefunden wurde, kommt ein
"Blafasel is undefined" , der STACK wird gelöscht und der Eingabe prompt
'OK ' erscheint wieder für einen neuen Try und Error
(Mausmelodie tüdel füdel und das war der Forth Outer Interpreter
Der Outer Interpreter ist einfach die Endlosschleife, die auf Keys wartet.
Mit dem einfachen Wort ":" name bla blu blubber ; wird der Compiler
eingeschaltet und versucht eine neue Definition 'name' zusammenzubringen,
falls der Eingabestrom nur definierte Sachen finden, passiert
of(f)ensichtlich nix, bis das Wort ';' den Compiler wieder ausschaltet und
die Endlosschleife (Outer Interpreter) wieder einschaltet und auf neue
Worte wartet. Sonst kommt halt "blubber" is undefined. Das ist die Colon-
Definition, also der HLL Compiler.
undefined? Ja stimmt, HIV han ich verjässe, also fix
: blubber tüdelfüdel Tschingerrassabum Mausmelodie ; <CR>
eintippern und das Problem ist hoffentlich behoben.
Dann blubber eintippen und beobachten Was passiert? War nix? Doch lieber
: blubber füdel fiep tröt ; <CR>
blubber is redifined OK
Äh, hüstel, wollemer nit
FORGET blubber<CR>
OK
und alles ist wieder sauber.
Ahh ja, und wie ist das kompiliert? Der Compiler setzt ins RAM an die
Stelle für den Eintrag name eine Liste mit den Anfängen von füdel fiep
tröt rein. Das Wörterbuch zeigt einfach auf den Beginn von name und
feddich is die Laube.
Und wie läuft dann so ein Proggie ab? Wenn das Wort im Eingabestrom
gefunden wurde, hampelt der Inner Interpreter eifach die aktuelle Liste
ab. Also eine Liste mit Verweisen auf Listen von Listen... Es wird also
solange die Aufgabe vor sich hergeschoben, bis irgendwann in diesem
gefädelten Code irgendjemand aufgerufen wird, der weis was damit
anzufangen ist und dann zurückkehrt hinter den letzten Aufruf.
Kannste Dir also etwa so vorstellen, wie eine Liste mit CALL 1234 CALL
4567 CALL 8134 ... vobei der CALL niht drinsteht, sondern nur die
Verweisadresse und der Inner Interpreter macht dann die CALLs.
Zack, so einfach ist FORTH.
Ein weiteres wichtiges Wortpaar ist CODE ... END-CODE das macht im Prinzip
das gleiche wie : ... ; aber eben in Assembler, das ist dann für Kenner
und Könner.
Der Anwender wird CODE END-CODE kaum brauchen, das mach dann ggf. ich oder
ein anderer Kenner.
Der Kunde schickt mir nur seine Latte von neuen :- Definitionen und sagt,
funzt alles, aber zu langsam, muss 3x schneller ablaufen. Ich frickel dann
interaktiv raus, wo wie die Zeit verplempert wird und verbessere das oder
schreib das Wort als CODE-Definition. Ist nur ein simples umkodieren, um
den Algorithmus brauch ich mich ja nicht zu kümmern, den hat der Kunde ja
schon als gut befunden. Macht die Sache unglaublich einfach. Meist sind
das nur wenige Stellen, die mit CODE getuned werden müssen. Und zum Test
wird halt eine oder mehrere Testschleifen definiert, wo die :- und die
CODE- Definition beide mit den gleichen Parametern aufgerufen und die
Ergebnisse verglichen werden, wenn abweicht, Schleifenabbruch und
weitersuchen, sonst kommt OK und alles ist womöglich schon ok.
Wer bisher durchgehalten hat: BRAVO nun kommt das ENDE bald
Auch sonstige Parameter standen in der Startup Datei
zB. Hubweg wurde mit der syntax
12,3 inch als Hubweg
festgelegt. Oh heute cm? kein Problem, dann eben
17,3 cm als Hubweg
eintippern, wg. mir erst mal zur Probe interaktiv, dann per editor in die
Start. Ja alle meine Projekte wurden als META Sprache in den jeweiligen
Anwender eigenen Fachsprache geschrieben, wegen mir auch in seiner
Landesprache. Ist praktisch Bestandteil von (Vollausbau) FORTH. Genauso
wie METAkompiler. Wenn ich die Fachsprache des Kunden kapiert habe, bin
ich auch einfacher auf seiner Ebene für Klärungen und ich habe vieles von
ihm zu seinem Nutzen gelernt und wir reden weniger aneinander vorbei.
WIN-WIN
So nun zum Schluss:
Schau mal nach Gforth für Windoof, Linux, Android, MAC oder was weis ich
noch alles. Ist eins der mächtigsten Systeme, das ich kenne.
Ich selber hab fast alles unter LMI PCF und F-PC gemacht. Gibs aber nicht
mehr. Nur für Windoof gibbet auch Win32Forth , auch ziemlich fettes Paket.
So genug für heute.
May the FORTH be with you!
Saludos (an alle Vernünftigen, Rest sh. sig)
Wolfgang
--
Ich bin in Paraguay lebender Trollallergiker reply Adresse gesetzt!
Ich diskutiere zukünftig weniger mit Idioten, denn sie ziehen mich auf
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung!
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
## date : 15.08.19
## newsgroup/archive: de.sci.electronics
## user : all2001@spambog.com (Wolfgang Allinger)
Örks, das sollte unter anderem subject raus, neuer Versuch, damit mans
wiederfindet
On 15 Aug 19 at group /de/sci/electronics in article grl5qvFi07iU1@mid.individual.net
<DrDiettrich1@aol.com> (Hans-Peter Diettrich) wrote:
Am 15.08.2019 um 13:53 schrieb Wolfgang Allinger:
FORTH ist METAsprache, Scriptsprache, HLL und ASM, und zwar alles in
einem, so schnell mein Hirn und Finger wollen.
Hmm, welches FORTH hast Du da (für Skripte...) verwendet?
Kannst jedes dafür nehmen, was auf entsprechende Umgebung zugreifen kann.
Ich hab z.B. ausführbare Schriftstücke an meine Kunden verschickt, also
z.B. startup_4712.src, das System hab ich so eingerichtet, dass es beim
Start in einem bestimmten Verzeichnis (START nach ner neuen Datei
gesucht hat, wenn es die gefunden hat wurde die einfach interpretiert/
compiliert und die Anlage war wieder auf dem neuesten Stand.
So konnte man Patches oder Versuche einspielen, so dass der Kunde die
Abläufe/Parameter anpassen konnte. Wenn er zB. ne Kalibrierung geändert
hatte konnte er damit arbeiten, wenn er wollte, dann einfach
"startup_4712.src FSAVE" (kurz für FileSave) tippern und ENTER. Beim
nächsten Start war es dann, als wenns immer schon so geplant war.
Wenns nix war, dann per Editor, zB. dem im benutzten FORTH eingebauten
oder einen externen nehmen und startup_xxxx.src verbasteln.
Und warten, bis der eingewiesene Programmierer oder der Allinger ne
angepasste exe lieferte.
FORTH ist halt ein Interpiler und Compreter gleichzeitig.
Die Kunden (häufig Maschbauer) waren begeister, wie einfach sie was
verfummeln oder probieren konnten.
kurzes langatmiges Gesabbel von mir:
Beispiel Anfrage: wir ham jetzt 999 Geräte die nach einer besonderen
Justierung justiert werden sollen, wie geht das? Ich hab denen dann eine
datei geschickt, wo die HLL Definitionen drinstanden. Konnte er dann beim
nächsten Start mit der Eingabe Typ999 starten, wenn er wieder ein paar
normale Geräte dazwischen fahren wollte, dann eben nur START eingeben bzw.
das als letztes Wort in die update_Typ999 reinfrickeln, oder wenns
dauerhaft bleiben sollte, dann eben \ (Backslash) START einflicken und
darunter die Zeile Typ999 reinschreiben. Falls doch wieder wankelmütig,
dann eben das Kommentarwort "\ " vor Start weg und gut wars.
Alles was FORTH im Eingabestrom (prompt OK ) liest, wird bei einem <SP>
oder EOL als Wort behandelt und im Wörterverzeichnis nachgeschlagen und
ausgeführt, wenns nicht gefunden wurde, wurde versucht es als Zahl zu
verwursten, wenn ja, dann wurde die Zahl auf den STACK gelegt und weiter
geparst, wenn nicht, weil BlaFasel nicht gefunden wurde, kommt ein
"Blafasel is undefined" , der STACK wird gelöscht und der Eingabe prompt
'OK ' erscheint wieder für einen neuen Try und Error
(Mausmelodie tüdel füdel und das war der Forth Outer Interpreter
Der Outer Interpreter ist einfach die Endlosschleife, die auf Keys wartet.
Mit dem einfachen Wort ":" name bla blu blubber ; wird der Compiler
eingeschaltet und versucht eine neue Definition 'name' zusammenzubringen,
falls der Eingabestrom nur definierte Sachen finden, passiert
of(f)ensichtlich nix, bis das Wort ';' den Compiler wieder ausschaltet und
die Endlosschleife (Outer Interpreter) wieder einschaltet und auf neue
Worte wartet. Sonst kommt halt "blubber" is undefined. Das ist die Colon-
Definition, also der HLL Compiler.
undefined? Ja stimmt, HIV han ich verjässe, also fix
: blubber tüdelfüdel Tschingerrassabum Mausmelodie ; <CR>
eintippern und das Problem ist hoffentlich behoben.
Dann blubber eintippen und beobachten Was passiert? War nix? Doch lieber
: blubber füdel fiep tröt ; <CR>
blubber is redifined OK
Äh, hüstel, wollemer nit
FORGET blubber<CR>
OK
und alles ist wieder sauber.
Ahh ja, und wie ist das kompiliert? Der Compiler setzt ins RAM an die
Stelle für den Eintrag name eine Liste mit den Anfängen von füdel fiep
tröt rein. Das Wörterbuch zeigt einfach auf den Beginn von name und
feddich is die Laube.
Und wie läuft dann so ein Proggie ab? Wenn das Wort im Eingabestrom
gefunden wurde, hampelt der Inner Interpreter eifach die aktuelle Liste
ab. Also eine Liste mit Verweisen auf Listen von Listen... Es wird also
solange die Aufgabe vor sich hergeschoben, bis irgendwann in diesem
gefädelten Code irgendjemand aufgerufen wird, der weis was damit
anzufangen ist und dann zurückkehrt hinter den letzten Aufruf.
Kannste Dir also etwa so vorstellen, wie eine Liste mit CALL 1234 CALL
4567 CALL 8134 ... vobei der CALL niht drinsteht, sondern nur die
Verweisadresse und der Inner Interpreter macht dann die CALLs.
Zack, so einfach ist FORTH.
Ein weiteres wichtiges Wortpaar ist CODE ... END-CODE das macht im Prinzip
das gleiche wie : ... ; aber eben in Assembler, das ist dann für Kenner
und Könner.
Der Anwender wird CODE END-CODE kaum brauchen, das mach dann ggf. ich oder
ein anderer Kenner.
Der Kunde schickt mir nur seine Latte von neuen :- Definitionen und sagt,
funzt alles, aber zu langsam, muss 3x schneller ablaufen. Ich frickel dann
interaktiv raus, wo wie die Zeit verplempert wird und verbessere das oder
schreib das Wort als CODE-Definition. Ist nur ein simples umkodieren, um
den Algorithmus brauch ich mich ja nicht zu kümmern, den hat der Kunde ja
schon als gut befunden. Macht die Sache unglaublich einfach. Meist sind
das nur wenige Stellen, die mit CODE getuned werden müssen. Und zum Test
wird halt eine oder mehrere Testschleifen definiert, wo die :- und die
CODE- Definition beide mit den gleichen Parametern aufgerufen und die
Ergebnisse verglichen werden, wenn abweicht, Schleifenabbruch und
weitersuchen, sonst kommt OK und alles ist womöglich schon ok.
Wer bisher durchgehalten hat: BRAVO nun kommt das ENDE bald
Auch sonstige Parameter standen in der Startup Datei
zB. Hubweg wurde mit der syntax
12,3 inch als Hubweg
festgelegt. Oh heute cm? kein Problem, dann eben
17,3 cm als Hubweg
eintippern, wg. mir erst mal zur Probe interaktiv, dann per editor in die
Start. Ja alle meine Projekte wurden als META Sprache in den jeweiligen
Anwender eigenen Fachsprache geschrieben, wegen mir auch in seiner
Landesprache. Ist praktisch Bestandteil von (Vollausbau) FORTH. Genauso
wie METAkompiler. Wenn ich die Fachsprache des Kunden kapiert habe, bin
ich auch einfacher auf seiner Ebene für Klärungen und ich habe vieles von
ihm zu seinem Nutzen gelernt und wir reden weniger aneinander vorbei.
WIN-WIN
So nun zum Schluss:
Schau mal nach Gforth für Windoof, Linux, Android, MAC oder was weis ich
noch alles. Ist eins der mächtigsten Systeme, das ich kenne.
Ich selber hab fast alles unter LMI PCF und F-PC gemacht. Gibs aber nicht
mehr. Nur für Windoof gibbet auch Win32Forth , auch ziemlich fettes Paket.
So genug für heute.
May the FORTH be with you!
Saludos (an alle Vernünftigen, Rest sh. sig)
Wolfgang
--
Ich bin in Paraguay lebender Trollallergiker reply Adresse gesetzt!
Ich diskutiere zukünftig weniger mit Idioten, denn sie ziehen mich auf
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung!
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot