RPN (UPN) Rechner für Linux

ArticleCategory: Hardware

Applications

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

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:

hp-calc and tux

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:

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

Name: rpnjcalc
Homepage: http://main.linuxfocus.org/~guido/javascript/rpnjcalcallver.html
Lizenz: GPL

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.

Name: vc (vector calculator)
Homepage: http://vc-calc.sourceforge.net/
Lizenz: GPL

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.

Name: x48
Homepage: ftp://www.sunsite.unc.edu/pub/linux/system/emulators/
Details zum x48: "x48 Details Seite", Installation, Dokumentation, rom images (siehe auch die Links am Ende des Artikels für weitere Rom Images)
Lizenz: GPL, aber man braucht ein HP Rom Image.

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).

Name: hp67
Handbuch: Die hp67 man-page im Htmlformat
Homepage: http://www.ibiblio.org/pub/Linux/apps/math/calc/
Lizenz: GPL

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).

Name: kalc
Handbuch: kalc.pdf 230K
Homepage: http://sourceforge.net/projects/kalc/
Lizenz: GPL

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.

Name: dcalc
Homepage: http://www.ibiblio.org/pub/Linux/apps/math/calc/
Lizenz: GPL

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.
Name: rpncalc
Homepage: http://www.gnu.org/directory/science/math/rpncalc.html
Lizenz: GPL

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).
Name: gdcalc
Homepage: http://bhepple.freeshell.org/dcalc/unix/
Lizenz: GPL

grpn

Das ist auch ein gtk basierter RPN Rechner. Er bietet einfache Algebra und Trigonometrie.
Name: grpn
Homepage: http://lashwhip.com/grpn.html
Lizenz: GPL

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.
Name: galculator
Homepage: http://galculator.sourceforge.net/
Lizenz: GPL

calcoo

Das ist ein älteres Modell. Er kann mit RPN oder algebraischer Eingabe arbeiten. Er ist gut für einfache Algebra und Trigonometrie.
Name: calcoo
Homepage: http://calcoo.sourceforge.net
Lizenz: GPL

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).
Name: kalk
Homepage: http://www.klawitter.de/palm/kalk.html
Lizenz: GPL

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.
Name: GCalc
Homepage: http://humblestar.net/GCalc/
Lizenz: GPL

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