RPN (UPN) Rechner für Linux
    ArticleCategory: Hardware
    Applications 
    AuthorImage:[Here we need a little image from you]
    ![[Photo of the Author]](../../common/images/Guido-S.gif) 
 
    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
 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.
 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.
 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.
 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.
 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.
 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).
 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.
 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.
 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.
 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.
 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.
 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.
 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).
 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.
 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.