RPN (UPN) Rechner für Linux
ArticleCategory: Hardware
Applications
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in en Guido
Socher
en to de Guido
Socher
AboutTheAuthor:[A small biography about the author]
Mein erster RPN Tachenrechner war ein HP15c und es war Liebe
auf den ersten Blick.
Abstract:
RPN steht für Reverse Polish Notation. Im Deutschen sagt man
oft auch UPN für Umgekehrte Polnische Notation. Reverse Polish
Notation wurde 1920 von Jan Lukasiewicz als ein Verfahren
entwickelt, um mathematische Ausdrücke ohne Klammern zu
schreiben. Man braucht einige Minuten, um RPN zu lernen, aber
schon bald stellt man fest, dass dieses Verfahren der
algebraischen Eingabemethode überlegen ist.
ArticleIllustration:
ArticleBody:
Einführung
Die RPN/UPN Tachenrechner wurden mit den HP Rechnern bekannt.
HP benutzte diese Eingabemethode schon für ihren ersten Rechner
1968. Wenn man das Internet durchsucht, findet man einen ganzen
Fanclub für diese HP Tachenrechner. Am Ende des Artikels finden
sich hierzu auch einige sehr gute Links. Die meisten dieser HP
Rechner sind heute Sammlerstücke und werden für Preise
gehandelt, die den ursprünglichen Preis dieser Rechner weit
übersteigen.
In diesem Artikel werde ich einige RPN "Tachenrechner" für den
Linux Desktop vorstellen. Wir werden nicht nur HP Emulatoren
betrachten, sondern auch andere RPN Rechner, die völlig
unabhängig von den HP Rechnern sind.
Wast ist RPN/UPN? Warum RPN/UPN?
RPN/UPN Rechner benutzen einen Stack (Stapel) und alle
mathematischen Operationen werden unmittelbar auf der untersten
Ebene des Stacks ausgeführt. Der Stack wird als Speicher für
Ergebnisse, die zum weiteren Auswerten einer Formel benötigt
werden, benutzt. Man braucht deshalb keine Klammern. Man gibt
immer zuerst die Zahlen ein, schiebt sie in den Stack und dann
sagt man was mit diesen Zahlen gemacht werden soll. Nehmen wir
an, man möchte
(( 3 + 1 )^2 + 1) * 4
berechnen. Dazu würde man folgenden eingeben:
3 enter
1 + (man sieht sofort das Ergebnis dieser Operation: 4)
x^2 (man sieht sofort das Ergebnis dieser Operation: 16)
1+ (man sieht sofort das Ergebnis dieser Operation: 17)
4* (Endergebnis: 68)
Zur Eingabe dieser Formel braucht man also 9 Tastendrücke und
man konnte alle Zwischenergebnisse sehen. Im Prinzip entspricht
diese Eingabe, dem Verfahren, wie man so eine Formel im Kopf
berechnen würde. Das Verfahren ist also viel "natürlicher". Es
funktioniert genau wie dein "Kopf".
Wenn man das mit einem algebraischen Rechner vergleicht, würde
man für dieselbe Formel 12 Tastendrücke brauchen und man würde
kein einziges Zwischenergebnis sehen. Die Vorteile sind mit
anderen Worten:
- RPN spart Zeit und Tastendrücke. Das Verfahren ist
vergleichbar mit dem Berechnen einer Formel im Kopf oder auf
dem Papier.
- Man sieht sofort alle Zwischenergebnisse und nicht nur
ein einziges Endergebnis. Das ist ein sehr nützlicher
Nebeneffekt.
- Die Zwischenergebnisse machen es viel leichter möglich,
der Rechnung zu folgen und Fehler zu finden. Der Benutzer
definiert dabei die Priorität (Reihenfolge) der
Operationen.
- RPN ist logisch, weil man zuerst zwei Zahlen eingibt und
dann sagt, was damit gemacht werden soll.
- Da Zwischenergebnisse angezeigt werden, sind
Eingabefehler sofort offensichtlich. Bei algebraischen
Rechnern sieht man dagegen nur ein einziges Endergebnis und
kann schwer abschätzen, ob es richtig ist. Das Weglassen einer
einzigen Klammer wird bei einem algebraischen Rechner oft
erst viel später festgestellt, wenn der gesamte Teilausdruck
berechnet wird.
Die Rechner
Wir fangen mit einigen einfachen Rechnern an, die man in seinem
Webbrowser sofort online ausprobieren kann und später im
Artikel kommen wir zu leistungsfähigeren Machinen.
rpnjcalc
Dieser Rechner benutzt
Javascript. Es ist meine eigene Entwicklung und er läuft in
jedem modernen (!) Webbrowser (er funktioniert nicht 100%ig in
opera 5/6, netscape 4 oder konquerer). Er unterscheidet sich
von den meisten anderen Javascript Rechnern, weil man über die
Tastatur Zahlen und einfache mathematische Operatoren eingeben
kann. Zum Zum Ausprobieren
einfach hier klicken
hp-35
Dieser Rechner benutzt auch
Javascript, aber es wird mehr Wert darauf gelegt, dass er wie
ein richtiger (alter) HP-35 Tachenrechner aussieht. Man kann
ihn online testen, indem man diesem Link folgt.
Wenn du den Rechner wirklich nutzen möchtest, dann empfehle
ich, das zip File herunterzuladen und lokal zu installieren, da
dieser Rechner GIF-Bilder benutzt und die Antwortzeiten
zum Laden dieser Bilder dann besser sind. Beachte auch, dass
dieser Rechner nicht genau den gleichen Funktionsumfang wie ein
richtiger HP35 hat. Er kann z.B. Trigonometie nur in Grad (0-360)
ausführen.
Name: |
hp-35 |
Homepage: |
Unbekannt, von www.hpmuseum.org. Download hier:hp-35.zip |
Lizenz: |
GPL |
dc
Dieser Taschenrechner ist ein
bekannter Unixbefehl. Man findet ihn selbst auf den ältesten
Unixsystemen. dc beherrscht nur einfache arithmetische
Operationen, aber er kann sehr sehr lange Zahlen verarbeiten. Um
dc zu starten, tippt man einfach dc und dann eine Zahl gefolgt
von "k" (z.B. 6k und tipp dann Return). Das setzt die Auflösung
der Stellen hinter dem Komma. Nun kann man Berechnungen (+-*/)
ausführen und den unteren Level des Stacks mit "p" drucken. Man
beendet dc mit crtl-d.
Name: |
dc (desk calculator) |
Homepage: |
Teil jedes Unixsystems. Unter Linux nennt sich das
Paket bc (aber der Befehl heißt dc). |
Lizenz: |
Normalerweise identisch zur Lizenz des Unixsystems. |
vc.pl
Dieser Rechner ist in Perl
geschrieben. Es ist eine interessante Implementation, weil es
sich hier um einen Vektorrechner handelt. Man kann ihn
natürlich auch für normale Arithmetik benutzen, da eine
einzelne Zahl einfach ein eindimensionaler Vektor ist. vc.pl
hat eine integrierte Hilfe (einfach help tippen). Die
Installation ist einfach, da nur Standard Perlmodule gebraucht
werden.
x48
Dieser Rechner ist ein HP-48
Emulator. Das heißt: man kann den echten Code von HP laufen
lassen. Der Rechner stellt nur den Emulator zur Verfügung, man
muss dann noch den echten HP-48 ROM Code haben. x48 hat eine
GPL Lizenz, aber das ROM hat natürlich ein HP Copyright. Der
Original hp48 Rechner wird von HP nicht mehr produziert und HP
erlabut Downloads von ROM Images seit 2000. Anmerkung: Es ist
ganz nett, einen solchen Rechner auf dem Bildschirm zu haben,
aber es ist nicht wirklich ein Ersatz für einen echten HP-48,
da der x48 kein sehr gutes Tastaturinterface hat. Man benutzt
deshalb die meiste Zeit die Maus und das ist sehr langsam.
Da der x48 ein Emulator ist, kann er alle Operationen ganau wie
der Original HP-48 ausführen. Die letzte Version, die ich
finden konnte ist 0.4. Sie ist schon einige Jahre alt. Version
0.4 braucht einen kleinen Patch, um auf einem modernem Linuxsystem sauber zu kompilieren. Ein Originalhandbuch, einige ROM
Images, der Patch und weitere Informationen finden sich auf der
"x48 Details Seite" weiter unten.
hp67
Dieser Rechner hat alle
Funktionen des echten hp67, aber er wurde komplett neu
geschrieben und ist unabhängig von dem echten hp67. Es ist kein
Emulator. Das Interface ist sehr einfach gehalten (ncurses),
aber der Funktionsumfang ist sehr gut. Der hp67 kommt mit
ausgezeichneter Dokumentation in Form einer man-Page (siehe
Link unten). Man kann ihn sogar wie einen echten hp67
programmieren. Um zu programmieren, drückt man "prog" und gibt
das Programm ein, angefangen mit einem "Label Namen". Den
Programmiermodus verläßt man mit "immed". Um das Programm
auszuführen, benutzt man "run Label Namen". Hier ist ein
Beispiel. Mein Beispiel ist etwas nutzlos, da es nur die
Quadratfunktion implementiert, aber man kann sehr schön sehen,
wie man den hp67 programmiert.
prog (enter programming mode)
label myprg
ENTER
*
rtn
immed (end of programming mode)
Nun kann man mit "run myprg" einfach das Programm ausführen
(x^2).
kalc
kalc arbeitet auch auf der
Kommandozeile. Er benutzt die readline Library und hat einige
automatische Kommandovervollständigungsfunktionen. Er kann mit
realen und komplexen Zahlen arbeiten, kennt Integerzahlen
beliebiger Länge und Floatingpoint Zahen mit beliebiger
Genauigkeit. Sehr gut ist auch die Dokumentation (siehe PDF
Datei).
dcalc
Dieser Rechner ist auch ein
ncurses basierter Rechner der in einem Terminalfenster läuft.
Er ist nicht programmierbar wie der hp67, aber er kann sehr
einfach Zahlen von hex in binär oder dezimal konvertieren.
rpncalc
Das ist auch ein rpn Rechner
für ein Terminalfenster, aber er ist nicht ncurses basiert. Er
ist deshalb eher mit dem "dc" Befehl vergleichbar. rpncalc
implementiert den Funktionsumfang eines HP28s. rpncalc ist
deshalb dem "dc" Befehl weit überlegen. Er kann komplexe
Zahlen, Vektoren und Matrizen. rpncalc ist Teil von Debian.
gdcalc
Das ist ein schöner Rechner
mit einem gtk Userinterface. Man kann ihn konfigurieren, um
entweder RPN oder algebraische Eingabe zu haben. Er hat 4
Modes: scientific, financial, statistics und einen
Zahlenkonvertierungsmode namens "programming mode". Dieser Mode
hat jedoch nichts mit der Programmierung des Rechners selbst zu
tun (wie bei dem x48 oder hp67). Er bietet alles, was man von
einem Desktop Rechner erwarten würde.
Um das "units conversion" Menü zu benutzen, muss man den
units(1) Befehl von ftp://ftp.gnu.org/gnu/units/ installieren
(units ist meist schon Teil der Linuxdistribution).
grpn
Das ist auch ein gtk
basierter RPN Rechner. Er bietet einfache Algebra und
Trigonometrie.
galculator
Dieser Rechner ist in
seinem Funktionsumfang dem gdcalc sehr ähnlich. Man kann ihn
für RPN oder algebraische Eingabe konfigurieren. Er unterstützt
Zahlenkonvertierung bin/hex/dec und hat alle grundlegenden
wissenschaftlichen Funktionen.
Er benutzt jedoch die neusten gtk Libraries (gtk 2.2). Man hat
daher Probleme, diesen Rechner auf einem älteren Linuxsystem zu
installieren. Er ist aber gut geschrieben und hat ein gefälliges
Interface.
calcoo
Das ist ein älteres Modell.
Er kann mit RPN oder algebraischer Eingabe arbeiten. Er ist gut
für einfache Algebra und Trigonometrie.
Kalk
Kalk ist ein einfacher (aber
freier) RPN Rechner für den Palm-Pilot. Der Palm läuft nicht
unter Linux, aber ich präsentiere Kalk hier, weil er unter der
GPL Lizenz steht (selten für Palm Software).
GCalc
Das ist überhaupt kein RPN
Rechner, aber er ist trotzdem sehr nützlich. Es ist ein Java
basierter Online-Funktionsplotter. Um ihn zu benutzen, braucht
man das Java Plugin für mozilla oder netscape. Das Plugin ist
Teil des jre Paketes von blackdown.org. Mit GCalc kann man
sofort Grafen in einem Javafähigen Browser zeichnen.
Zusammenfassung
Wie man sehen kann, gibt es RPN Rechner für jeden Geschmack. Es
gibt sicher noch viel mehr, aber die oben genannten haben alle
eine GPL Lizenz.
Referenzen
- Download
Seite, die Versionen der Rechner wie sie verfügbar waren,
als der Artikel geschrieben wurde
- HP48
rom images, von hpcalc.org
- http://www.hpmuseum.org/, Ein
online Museum über alle HP Taschenrechner
- area48.com/history.html,
Geschichte der berühmten HP48 Rechner
- www.transnull.com/hp48.html,
FAQs und ROM Images für den HP48
- www.hp-collection.org/hewlettpackard.htm,
eine private Sammlung von fast allen HP Rechnern
- www.limov.com/rcl20/, RCL
20: People, Dreams & HP Calculators. Das ist ein Buch
(keine online Version) über den HP41
- www.finseth.com/~fin/hpdata.html,
HP Datenbank, Details zu allen HP Tachenrechnern
- www.hp.com/calculators/,
die offizielle HP Tachenrechner Seite (alle anderen oben
aufgeführten Links sind von privaten Fans). HP hat leider
nicht mehr viel auf seiner Seite zu bieten. Eine sehr
traurige Seite.