W
Wolfgang Allinger
Guest
On 17 Oct 19 at group /de/sci/electronics in article qo9mck$c0j$1@news2.open-news-network.org
<dfnsonfsduifb@gmx.de> (Johannes Bauer) wrote:
Da hat der Deutsch-Oberlehrer aber etwas gepatzt
Wolfgang iss ne Petze! Ätsch!
Na wenn Du meinst.
Und stimmt offensichtlich trotzdem nicht, es fehlt noch das speichern nach
y, also der Term y=, hätteste besser 6x angesehen
und ich nicht einmal
a x x * * b x * + c + im hp-16C style y ist TOS
a x ^2 b x * + c + TO Y im Forth style vom TOS zu y
Achso die Variablen fehlen noch, also vorher (bei mir) deklarieren.
Du tippst Dir die Finger wund, ich nur incl. gleich vorbesetzen mit a=1
x=2 b=3 c=4 y=0, guckstu wie schön:
1 VALUE a
2 VALUE x
3 VALUE b
4 VALUE c
0 VALUE y
Ach so, y und y soll public sein, a b c locals? Hammwa och:
kNAN VALUE x
kNAN VALUE y
dann eben in der entsprechenden Routine
...
LOCALS| a b c | 1 TO a 3 TO b 4 TO c
...
Feddich iss die Laube
BTW kNAN ist bei mir eine Konstante (desterwegen kname) die Not A Number
repräsentiert, ist nicht Standard, aber sehr brauchbar beim debuggen.
den ganzen Schmonzes möchtest du OCTAL?
dann tip es doch einfach
OCTAL
Hexadecimal gefällig? tippere HEX,
Binary dann doch? ok, gibbet auch: BINARY eintippen
und zurück zu decimal mit eben diesem DECIMAL
Präfixe für HEX ... gibbet latürnich auch
Und wenn Du neugierige vertreiben willst, dann eben
DECIMAL 36 BASE !
Dann kannst mit 0..9 A..Z rechnen
So kann man u.a. sein Copyright verstecken/schützen.
Bei einem x64 FORTH mit 128bit doubles, könnte man schon ganz schön lange
Texte verstecken.
Oder lieber im Trinär System?
3 BASE !
So einfach ist FORTH
Man erkennt, dass wir unterschiedliche Sichtweisen haben. Meine UPN-Sicht
ist einfach klar, gut lesbar und ohne Klammeritis...
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
<dfnsonfsduifb@gmx.de> (Johannes Bauer) wrote:
On 17.10.19 13:28, Hans-Peter Diettrich wrote:
Am 17.10.2019 um 13:22 schrieb Andreas Karrer:
ein typischer Compiler für höhere Programmiersprachen bei der
Berechnung von algebraischen Ausdrücken genau das: er konvertiert
algebraische Notation in Stack-Arithmetik. Er bildet Terme, wirft sie
auf den Stack, bildet Summen der Top-of-Stack-Elemente usw.
Und der Benutzer wundert sich, daß nicht das gewünschte Ergebnis
herauskommt. Weil er keine Ahnung mehr von Numerik hat, falsche
Datentypen verwendet, Über- und Unterläufe produziert, weil ja alles
anscheinend so einfach ist.
Ein denkbar schlechtes Argument.
Du wirst ja wohl nicht allen Ernstes behaupten wollen, dass man das
Abstraktionsniveau möglichst niedrig ansetzen sollte, damit man eine
geringere Programmierfehlerquote erreicht? Ich vermute, exakt das
Gegenteil ist der Fall. Denn Numerik, Datentypen, Über- und Unterläufe
muss man auch in einer niedrigeren Abstraktion berücksichtigen. Aber
obendrauf kommt dann halt noch krude, umständliche Syntax (z.B. direkt
Assembler-Code oder RPN) die eben nicht direkt das widerspegelt, was ich
machen will.
Da hat der Deutsch-Oberlehrer aber etwas gepatzt
Wolfgang iss ne Petze! Ätsch!
Beispiel:
y = a x^2 + bx + c
Sofort offensichtlich, was das ist.
Na wenn Du meinst.
#define sqr(x) ((x) * (x))
y = a * sqr(x) + b * x + c;
Und jetzt
mulsd %xmm0, %xmm1
mulsd %xmm0, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm0, %xmm1
addsd %xmm3, %xmm1
movapd %xmm1, %xmm0
Oder eben
x x mul a mul b x mul c add add
(Das ich dreimal angeschaut habe um sicherzugehen, dass es stimmt)
Und stimmt offensichtlich trotzdem nicht, es fehlt noch das speichern nach
y, also der Term y=, hätteste besser 6x angesehen
und ich nicht einmal
a x x * * b x * + c + im hp-16C style y ist TOS
a x ^2 b x * + c + TO Y im Forth style vom TOS zu y
Achso die Variablen fehlen noch, also vorher (bei mir) deklarieren.
Du tippst Dir die Finger wund, ich nur incl. gleich vorbesetzen mit a=1
x=2 b=3 c=4 y=0, guckstu wie schön:
1 VALUE a
2 VALUE x
3 VALUE b
4 VALUE c
0 VALUE y
Ach so, y und y soll public sein, a b c locals? Hammwa och:
kNAN VALUE x
kNAN VALUE y
dann eben in der entsprechenden Routine
...
LOCALS| a b c | 1 TO a 3 TO b 4 TO c
...
Feddich iss die Laube
BTW kNAN ist bei mir eine Konstante (desterwegen kname) die Not A Number
repräsentiert, ist nicht Standard, aber sehr brauchbar beim debuggen.
den ganzen Schmonzes möchtest du OCTAL?
dann tip es doch einfach
OCTAL
Hexadecimal gefällig? tippere HEX,
Binary dann doch? ok, gibbet auch: BINARY eintippen
und zurück zu decimal mit eben diesem DECIMAL
Präfixe für HEX ... gibbet latürnich auch
Und wenn Du neugierige vertreiben willst, dann eben
DECIMAL 36 BASE !
Dann kannst mit 0..9 A..Z rechnen
So kann man u.a. sein Copyright verstecken/schützen.
Bei einem x64 FORTH mit 128bit doubles, könnte man schon ganz schön lange
Texte verstecken.
Oder lieber im Trinär System?
3 BASE !
So einfach ist FORTH
Also ich persönlich bevorzuge die Repräsentation, die dem am nächsten
ist, was tatsächlich mathematisch gemacht wird. Bei der man direkt
erkennen kann, was passiert.
Man erkennt, dass wir unterschiedliche Sichtweisen haben. Meine UPN-Sicht
ist einfach klar, gut lesbar und ohne Klammeritis...
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