Notació polaca inversa

La notació polaca inversa, notació de postfijo, o notació posfija (en anglés, Reverse Polish Notation, o RPN), és un método algebraic alternatiu d'introducció de senyes. El seu nom ve per analogia en la relacionada notació polaca, una notació de prefix introduïda en 1920 pel matemàtic polac Jan Łukasiewicz en a on cada operador està abans dels seus operants. En la notació polaca inversa és al revés: primer estan els operants i despuix ve l'operador que va a realisar els càlculs sobre ells. Tant la notació polaca com la notació polaca inversa no necessiten usar paréntesis per a indicar l'orde de les operacions, mentres l'aridad de l'operador siga fixa.
L'esquema polac invers va ser propost en 1954 per Burks, Warren i Wright[1] i reinventat independentment per Friedrich L. Bauer i Edsger Dijkstra a principis dels anys 1960, per a reduir l'accés de la memòria de computadora i per a usar el stack per a evaluar expressions. La notació i els algoritmes per a este esquema varen ser estesos pel filòsof i científic de la computació australià Charles Leonard Hamblin a mitan dels anys 1960.[2][3] Posteriorment, Hewlett-Packard ho va aplicar per primera volta en la calculadora de sobretaula HP-9100A en 1968 i després en la primera calculadora científica de bojaca, la HP-35. Durant els anys 1970 i 1980, el RPN tenia cert valor inclús entre el públic general, puix va anar àmpliament usat en les calculadores d'escritori del temps - per eixemple, les calculadores de la série HP-10C.
En ciències de la computació, la notació de postfijo és freqüentment usada en llenguages de programació concatenativos i basats en pila. També és comú en sistemes basats en fluix de senyes i canonades, incloent les canonades d'Unix.
Funcionament
[editar | editar còdic]El seu principi és el d'evaluar les senyes directament quan s'introduïxen i manejar-los dins d'una estructura LIFO (Last In First Out), lo que optimisa els processos a l'hora de programar.
Bàsicament les diferències en el método algebraic o notació de infijo és que, en evaluar les senyes directament en introduir-los, no és necessari ordenar l'evaluació dels mateixos, i que per a eixecutar un comando, primer es deuen introduir tots els seus arguments, aixina, per a fer una suma «a+b = c» el RPN ho manejaria «a b +», deixant el resultat c directament.
Note's que la notació polaca inversa no és lliteralment l'image especular de la notació polaca: l'orde dels operants és igual en les tres notacions (infijo, prefixe o polaca, i postfijo o polaca inversa), lo que canvia és el lloc a on va l'operador. En la notació infija, l'operador va en el mig dels operants, mentres que en la notació polaca va abans i en la notació polaca inversa va despuix. Aixina que, «640 / 16» (en notació de infijo), s'escriu com «/ 640 16» (en notació polaca) i com «640 16 /» en notació polaca inversa. L'orde dels operants és important quan es manegen operadors no conmutativos (com la resta o la divisió), aixina, si dividim 10 entre 2, per eixemple, en les tres notacions es deu escriure de la següent manera: «10 / 2», «/ 10 2», «10 2 /».
Ventages
[editar | editar còdic]- Els càlculs es realisen secuencialmente segons es van introduint operadorés, en lloc de tindre que esperar a escriure l'expressió al complet. Per açò, es cometen menys errors en processar càlculs complexos.
- El procés d'apilación permet guardar resultats intermijos per a un us posterior. Esta característica permet que les calculadores RPN computen expressions de complexitat molt superior a la que alcancen les calculadores algebraiques.
- No requerix paréntesis ni regles de preferència, al contrari que la notació algebraica, ya que el procés de apilamiento permet calcular l'expressió per etapes.
- En les calculadores RPN, el càlcul es realisa sense tindre que pressionar la tecla "=" (encara que es requerix pulsar la tecla "Enter" per a afegir sifres a la pila).
- L'estat intern de la calculadora sempre consistix en una pila de sifres sobre les que es pot operar. Ya que no es poden introduir operadors en la pila, la notació polaca inversa és conceptualment més senzilla i menys donada a errors que atres notacions.
- En térmens educatius, la notació polaca inversa requerix que l'estudiant comprenga l'expressió que s'està calculant. Copiar una expressió algebraica directament a una calculadora sense comprendre l'aritmètica pot donar un resultat erròneu.
Vore també
[editar | editar còdic]- Notació de infijo
- Notació de prefix
- Algoritme shunting yard
- LIFO
- Màquina de pila
- Grans sistemes de Burroughs
- Llenguage de programació orientat a pila
- Llenguages de programació
- Calculadores HP, HP-9100, HP-35
- PostScript
- Métodos d'entrada de les calculadores
- Calculadora Orpie
Referències
[editar | editar còdic]- ↑ "An Analysis of a Logical Machine Using Parenthesis-Free Notation," by Arthur W. Burks, Don W. Warren and Jesse B. Wright, 1954
- ↑ "Charles L. Hamblin and his work" by Peter McBurney
- ↑ "Charles L. Hamblin: Computer Pioneer" by Peter McBurney, July 27, 2008. "Hamblin soon became aware of the problems of (a) computing mathematical formulae containing brackets, and (b) the memory overhead in having dealing with memory stores each of which had its own name. One solution to the first problem was Jan Lukasiewicz's Polish notation, which enables a writer of mathematical notation to instruct a reader the order in which to execute the operations (i.g. addition, multiplication, etc) without using brackets. Polish notation achieves this by having an operator (+, *, etc) precedix the operands to which it applies, i.g., +ab, instead of the usual, a+b. Hamblin, with his training in formal logic, knew of Lukasiewicz's work."
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «Notación polaca inversa» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.