Ich unterrichte Computer für 18-Jährige. Nachdem man ihnen die umgekehrte polnische Notation erklärt hatte, fragte man sie, warum es wichtig genug sei, an der öffentlichen Prüfung teilzunehmen. Ich habe die historische Bedeutung von Taschenrechnern der 70er Jahre erklärt, aber dies hat das Problem nicht wirklich gelöst. Gibt es also und gleichzeitig praktische oder theoretische Anwendungen von RPN.
terminology
education
Matt Scott
quelle
quelle
Antworten:
Ich habe RPN mehrmals für Rapid Prototyping verwendet, z. B. für Programme, die einen vom Benutzer bereitgestellten mathematischen Ausdruck lesen und interpretieren müssen.
Während die reguläre mathematische Notation mindestens einen rekursiven Parser (Klammern, Operatorreihenfolge usw.) erfordern würde, ist ein RPN-Parser im Grunde ein Stapel mit einer
switch
ähnlichen Anweisung. Ich denke, es ist diese Kombination aus Einfachheit und Ausdruckskraft, die HP dazu veranlasste, es anfangs zu verwenden.Dies dient jedoch in der Regel dem schnellen Prototyping und der Benutzerfreundlichkeit. Ich würde niemals annehmen, dass ein Benutzer RPN verstehen kann oder will.
quelle
Nur um die vorherigen Antworten / Kommentare zu erweitern: Vergessen Sie nicht, dass RPN lebendig und in hervorragender Form ist ... tatsächlich wird es derzeit in Stack-Maschinen wie der Java Virtual Machine verwendet.
Aus Wikipedia: "... eine Stapelmaschine einen Stapel mit Registern implementiert. Die Operanden der arithmetischen Logikeinheit (ALU) sind immer die beiden obersten Register des Stapels, und das Ergebnis der ALU wird im obersten Register des Stapels gespeichert . ‚Stack - Maschine‘ bezieht sich allgemein auf Computer , die-First out ein Last-in, verwenden Stapel kurzlebige temporäre Werte zu halten , während einzelne Programmanweisungen ausgeführt werden . Der Befehlssatz trägt die meisten ALU Aktionen mit postfix aus ( Reverse Polish Notation ) Operationen, arbeiten nur mit dem Ausdrucksstapel, nicht mit Datenregistern oder Hauptspeicherzellen ... "
Die Vor- und Nachteile eines solchen Ansatzes sind auch in dem Wikipedia-Artikel beschrieben .
quelle
Forth und PostScript (und damit PDF, das IIRC als binäre Codierung einer Teilmenge von PostScript gestartet hat) sind bekanntere Postfix-Sprachen als HP Pocket Calculator.
Dann ist es auch eine relativ häufige Wahl als Zwischendarstellung in einfachen Compilern.
Die einfacheren VMs haben in der Regel auch eine Postfix-Maschinensprache.
quelle
In Bezug auf Taschenrechner: Siehe Was ist RPN?
Vorteile: RPN spart Zeit und Tastatureingaben. Sie vermeiden es, während der Berechnungen Klammern zu verwenden und den Überblick zu behalten. Der Vorgang ähnelt dem, wie Sie Mathe auf Papier gelernt haben.
Sie können die Zwischenergebnisse sehen, wenn Sie Ihre Berechnungen durchführen, und nicht nur die Antwort am Ende. Dies ist äußerst hilfreich für das Erlernen der Logik. Mathematiklehrer verwenden diese Funktion, um das Verständnis der Schüler für Mathematik zu verbessern.
Ein Zwischenergebnis ermöglicht es dem Benutzer, die Antwort zu überprüfen und Fehler leichter zu korrigieren. Es ist einfacher, dem Berechnungsfluss zu folgen. Der Benutzer legt die Priorität der Operatoren fest.
RPN ist logisch, weil der Benutzer zuerst die Nummer angibt und dann angibt, was damit zu tun ist.
quelle
Wie der Name schon sagt, handelt es sich bei der umgekehrten polnischen Notation oder der direkten polnischen Notation um Notationen. Sie sind eine Syntax für die Darstellung von etwas und tatsächlich eine effiziente Syntax, wenn Sie den Speicherbedarf berücksichtigen. Was sie darstellen, sind verwurzelte Bäume, bei denen es sich um Formeln, abstrakte Syntaxbäume (AST) und andere Arten von Entitäten handeln kann, die jeder als absolut nutzlos betrachten kann.
Gelegentlich muss man solche Entitäten in einer Datei speichern. Beispielsweise gibt es Systeme, die Programme als AST bearbeiten oder transformieren können und möglicherweise solche Darstellungen speichern müssen. Polnische Form ist bequem. Es ist für Menschen, insbesondere für große Bäume, nur eingeschränkt lesbar, für Maschinen jedoch sehr praktisch.
Ein weiterer Aspekt ist, dass ich der Ansicht bin, dass das Studium von Bäumen und ihrer elementaren Verwendung und Darstellung sowie der zugehörigen Geräte (Stapel) als Einführung in zukünftige Studien fortgeschrittener Konzepte (Syntax, Parsen, Logik, Linguistik) pädagogisch nützlich ist , ...).
Es hat auch den Vorteil, dass es konzeptionell eher einfach ist und sich leicht auf dem Papier experimentieren lässt. Es ist auch eine gute Gelegenheit, die Syntax und die Tatsache zu diskutieren, dass Syntax Repräsentation ist und dass Repräsentationen variieren können, während sie dasselbe darstellen, und dass verschiedene Repräsentationen verwendet werden können, je nachdem, welche Anforderungen erfüllt werden müssen (Speicherplatzoptimierung, einfache Modifikation, menschliche Lesbarkeit, Computerlesbarkeit, ...).
Aber ich bin überrascht, dass diese Frage und ihre Antworten nur RPN berücksichtigen und keine direkte polnische Notation berücksichtigt.
Es ist auf jeden Fall sehr gut, dass die Schüler fragen. Die Beantwortung einer solchen Frage hat jedoch immer verschiedene Aspekte. Ist es nützlich für das Wissen selbst? Ich denke, es ist. Ist es als pädagogische Übung nützlich? Ich denke, das ist es, aber das hängt sehr vom beabsichtigten Publikum ab, und nur der Lehrer kann beurteilen, was er verstehen kann. Ist es hilfreich, einige konzeptionelle Probleme zu verstehen? Ich denke, das ist es, aber es hängt auch hier von der Einschätzung des Lehrers ab, welche Konzepte den Schülern erklärt werden können.
quelle
Ihr Schüler hatte absolut Recht. Die umgekehrte polnische Notation ist in der Informatik nicht signifikant genug, um eine sehr begrenzte Unterrichtszeit dafür aufzuwenden. Stattdessen gibt es so viele andere wunderbare konzeptionelle Ideen, die Sie mit tiefen intellektuellen Ideen hätten lehren können: stabile Ehe, Kuchenschneiden, Diagonalisierung und Unentscheidbarkeit des Halteproblems, interaktive Beweise und wissensfreie Beweise usw. usw. Ja, alle diese können für 18-Jährige zugänglich gemacht werden.
Und ich hoffe, Sie haben Ihren Schüler dafür gelobt, mutig genug zu sein, um die Frage zu stellen! Sie mussten sich auf einen Felsvorsprung stellen, um das Thema anzusprechen. Es spricht gut für Ihren Unterrichtsstil, dass sie sich wohl gefühlt haben, Ihnen diese Frage zu stellen.
quelle
Die umgekehrte polnische Notation war ein gutes Werkzeug in meiner Ausbildung, um Analysebäume und Baumdatenstrukturen im Allgemeinen zu verstehen. Es ist auch nützlich, wenn jemand Interesse an der Programmierung in einer der Lisp-Sprachen hat (Clojure, Emacs-Lisp, Schema usw.).
quelle