in , ,

GeekyGeeky

Notación Polaca Inversa

Todos hemos utilizado alguna vez una calculadora. La gran mayoría de ellas, incluida la que viene por defecto en nuestro sistema operativo favorito, utilizan un sistema denominado “notación de infijo”, en el que los operadores separan los operandos. Sin embargo, existe otra forma de realizar cálculos llamada “notación de postfijo” o “Notación Polaca Inversa” en la que primero se introducen los operandos y después el operador que va a realizar los cálculos sobre ellos. Desde 1968, este sistema ha sido aplicado en una gran cantidad de calculadoras, sobre todo por Hewlett-Packard.

Desde que aprendemos a realizar operaciones matemáticas sencillas, como la suma o la resta, nos acostumbramos a la llamada  “notación de infijo”. En esta notación, los operadores (el “símbolo” que denota que operación debemos realizar) se coloca en medio de los operandos (las cifras con las que queremos operar). Así, para sumar dos y cinco, escribimos “2 + 5”. La mayoría de las calculadoras electrónicas emplean esta misma notación, y nos resulta sumamente facil utilizarlas porque no estamos haciendo otra cosa que los cálculos de siempre pero empleando un asistente electrónico. Sin embargo, esta no es la forma más eficiente de introducir datos en uno de estos cacharros.

Calculadora de sobremesa HP-9100A(1968)

La Notación Polaca

En 1920, un matemático polaco llamado Jan Lukasiewicz publicó un método algebraico alternativo de introducción de datos conocido como “Notación Polaca”, en la que cada operador está antes de sus operandos. De esta manera, nuestro ejemplo “2 + 5” se convierte en “+ 2 5”. Luego del “2” y del “5” (si estamos utilizando una calculadora u ordenador) debemos presionar una tecla especial (a menudo llamada “Enter”) para “avisar” al sistema que hemos terminado de ingresar un operando. Puede parece algo complejo, pero en realidad una vez que uno se acostumbra a ello es muy simple de utilizar.

Este método sirvió de base a otro muy parecido, pero que ponía en primer lugar los operandos y al final los operadores (“2 5 +”). Este sistema es el llamado “Reverse Polish Notation” (“Notación Polaca Inversa”) o, simplemente, RPN.  Este sistema fue “inventado” varias veces. La primera vez que se documentó su aplicación fue en 1954, por Burks, Warren, y Wright. En la década de 1960  Friedrich L. Bauer y Edsger Dijkstra, de forma independiente, volvieron a proponer el sistema RPN, como parte de su trabajo con ordenadores. RPN es un mecanismo muy práctico para ser programado, ya que permite reducir el número de accesos a la memoria y utilizar un stack (pila) para evaluar las expresiones.

La Notación Polaca Inversa también se conoce como “notación de postfijo”  o “notación posfija”, y al igual que la Notación Polaca tiene la innegable ventaja de que (siempre que la paridad del operador sea fija) no se necesitan usar paréntesis para indicar el orden de las operaciones. Los algoritmos necesarios para implementar RPN en sistemas electrónicos fueron puestos a punto y divulgados por un científico australiano llamado Charles Leonard Hamblin,  a mediados de la década de 1960. Hewlett-Packard utilizó esta notación en 1968, cuando diseñó su primera calculadora de sobremesa -la HP-9100A– y también  en la primera calculadora científica de bolsillo, la HP-35. Esto hizo que el sistema fuese muy conocido y utilizado por los estudiantes e ingenieros de los años 1970, ya que los productos de Hewlett-Packard estaban muy difundidos.

Aunque hoy cuesta un poco encontrar calculadoras que utilicen RPN como base de su funcionamiento, lo cierto es que este sistema se encuentra en las tripas de muchas de las aplicaciones que utilizas cada día. Esta forma de trabajo es aplicada extensamente en los lenguajes de programación basados en pila, o en sistemas operativos basados en flujo de datos y tuberías, como Unix.

Reportar

¿Qué te pareció?

Escrito por Ariel Palazzesi

24 Comments

Leave a Reply
  1. ¿Y haces todo un artículo por un detalle tan menor como este en las calculadoras? Ay… Neoteo… dónde han ido a parar tus interesantes artículos sobre fusión fría y la singularidad… Ahora lo único que consigo leer por aquí son galerías de ordenadores antiguos y toscos artículos sobre la historia de algunos aparatos electrónicos obsoletos.

    • ¿Perdón? ¿Un detalle menor? ¿Galerías de ordenadores antiguos y toscos artículos?
      Me parece que no entendés nada de tecnología, menos de computación y, para peor, si realmente te interesaran las ciencias -que se denotaría de tu frase "tus interesantes artículos sobre fusión fría y la singularidad"-, entonces comprenderías cabalmente cómo influyen todas estas cosas en esos dos puntos que nombras y en el resto de las ciencias…

      ¿Vos pensás que la singularidad, por poner un ejemplo que vos nombraste, sería posible sin la notación polaca? JUSTAMENTE TE ESTAN ACLARANDO QUE ESTE TIPO DE ALGEBRA ES MUY UTILIZADO TANTO EN PROGRAMACION COMO EN SISTEMAS OPERATIVOS… ¿y vos te ponés a dudar de la "utilidad" del relato?
      Pensá que el conocimiento, aún de los temas más vanales, conforma el acervo de nuestra "cultura general", cultura general ésta que te permite, justamente, salir de tu campo de especialización para conocer mucho más del mundo que nos rodea. Es notable cómo aquellas personas con una mayor cultura general, habitualmente, mantienen juicios valorativos sobre hechos u otras personas mucho más complejos y racionales que aquellos que no tienen ese mismo nivel de cultura…

      Disculpá si este mensaje te parece un poco agresivo; puede ser que algún artículo te resulte más o menos interesante, pero tu interés en determinados temas no debe implicar necesariamente que haya habido una merma en la calidad del contenido de éste sitio… muy por el contrario, han sabido "ver" más allá de su propuesta original, añadiendo nuevas clases de artículos y puntos de vista que, solamente, los hacen aún mejores frente al resto de la competencia.

      • Perdón, creo que no me he expresado con demasiada claridad. Me refería sobre todo al hecho de que esta página hace cada vez más artículos que miran al pasado y cada vez menos de los "que miran al futuro". Además, si siguen haciendo artículos de este tipo (sobre un tipo de notación que sólo llamará la atención a gente con conocimientos sobre programación informática, la calidad de la página no va a mejorar, sino, en mi opinión, perderá el interés de una gran cantidad de lectores a los que les interesa la ciencia, "pero en general", y no aprender conocimientos concretos de programación. Además, no sólo acabará perdiendo ese tipo de lectores, sino muchos otros lectores jóvenes (que tengan menos de 30 años) que no tienen ni idea de lo que es un "Anita" o no les entrará nostalgia al ver unas cuantas fotos de un Commodore. Creo que yo personalmente no entro en ninguno de los dos tipos de lectores que he mencionado, pero igualmente, por gustos personales, me desagrada el camino que toma la página. Antes se hablaba de temas más interesantes (OJO, para mi gusto, que para gustos los hay tantos como colores). Es sólo mi opinión y mi gusto. Y de la misma manera que habrá gente que estará de acuerdo con tu opinión, BelegDraug, me imagino que por simples posibilidades debe de haber también gente de acuerdo conmigo (o sino no me hubieran votado positivamente).

        Resumiendo: es cuestión de gustos. Y no me gusta el camino extremadamente nostálgico y ultradetallista(por artículos como este) que está tomando la página. Es simplemente eso, mi opinión, y las habrá a millones y de todos los tipos.

    • No es un detalle acerca de las calculadoras, es sobre la notación RPN, sin la cual muchos de los programas que piden datos desde el teclado no funcionarían, cualquier parser de expresiones matemáticas, incluso de última generación, tienen que usar un algoritmo para cambiar las expresiones a esta notación, para luego usar stacks y resolver el problema.

      Nosotros como seres humanos no le encontramos mucho sentido a esto por que vemos parentesis y operandos separados por operadores, y todo es muy fácil, pero una computadora necesita un poco mas de esfuerzo para entenderlo.

    • Vos lo que querés es ver noticias de qué teléfonos celulares salen cada día y la misma cáscara con las notebooks, en fin, hay lectores para todo.

  2. Idem BelegDraug
    yo por ejemplo no lo sabia… ahora me entero, y ahora me doy cuenta porque ponia "suma (2,5)" en un array, y lo entendia de otra manera, habia sido es la "notación de postfijo" sabio es aquel que sabe apreciar los pequeños detalles en oro del monumento, no la estructura majestuosa cuadrada y vana.-

  3. Yo tengo una CASIO fx-85ES y mi hermano tiene el modelo siguiente, estas calculadoras son relativamente nuevas, y creo que funcionan de esta manera, aunque en forma "híbrida" por decirlo de algún modo, tiene funciones para poner primero el operador en una fracción y después sus respectivos numerador y divisor, otra funciones son las de la potencia, raiz N, y la de mi hermano integrales.
    A mi me parece muy útil este tipo de notación, por que no tienes que utilizar tantos paréntesis y llaves como en una calculadora normal, que a veces resulta complicado y confuso en operaciones muy largas.
    BUEN ARTICULO!

  4. Larga vida al modo RPN. Yo tengo una calculadora HP 48G+ ya bastante pasadita de moda, con ella aprendi a usar el rpn y los calculos se hacen mucho mas rapidos, ya que al no usar parentesis te ahorras un monton de tiempo, muy valioso en los examenes de la universidad. De todas formas recién ahora me enteré qué significaban esas siglas ja jaja nunca le habia prestado atenciòn.
    Ahora que termine mis estudios ya no la utilizo mucho pero me la quedare como recuerdo pues le tengo mucho cariño.
    Saludos
    Excelente articulo.

  5. Muchos lenguajes de programación usan la notación prefija y posfija ya que de esta manera parsearlo es mucho más sencillo y rápido. Se podría decir que sin ello la informática no habría avanzado tanto.

  6. en verdad el artículo y el título (admito que lo tuve que leer dos veces, ayer y hoy) prometían mucho pero al final la utilidad enorme sólo la apreciarían un puñado de personas.

  7. Pues yo creo que ya nadie usa eso del RPN. Yo lo usé con mi hp48gx y era de lujo, pero eso fue hace 15 años. ¿HP todavía hace calculadoras? je je cuando sali de la U empezaban los emuladores de calculadoras para pc’s y PDA’s. Yo tenia el emulador de la hp48gx en una axim30. Ya las PDA’s tambien dejaron de usarse, hoy son smartphones y "tabletas".

    Ya me volví viejo…. snif… no valgo nada… quiero un abrazo.

  8. Para mí las calculadoras HP50 son lo mejor, yo fui usuario de una HP48G durante 12 años, y usar el PRN tanto para hacer cálculos como para programarla era bastante práctico.

    Por si le interesa a alguien:

    http://www.hpcalc.org

    En ese sitio pueden encontrar tanto emuladores de calculadoras HP para la PC así como también software para las mismas.

    Y ya que estuvieron haciendo notas sobre calculadoras estaría también interesante que hicieran una nota justamente sobre las calculadoras HP (HP48G/GX, HP49G/GX, HP50G/GX y la series enteriores a las 48), sobre sus capacidades de cálculo, gráficas y de programación. Las HP tienen su propio lenguaje de programación llamado RPL (una mezcla de Fortran y LISP si no me equivoco), que lo creó Hewlett-Packard específicamente para estas calculadoras.

  9. Chicos!, cuantos recuerdos!!!
    Yo he usado mi hp48g durante mucho tiempo, con ella aprendí a usar la notación polaca inversa y profesores tanto de programación como de matemática me comentaban las ventajas e importancia de esta notación ……. una vez que te acostumbrás es increible lo fácil y rápido que hacés todo ……
    Muy buen artículo!
    En un mundo tan "armado" y lleno de gente ávida de "recetas rápidas" y con pocas ganas de aprender, realmente LOS FELICITO por no fomentar eso y mostrar siempre una mirada alternativa a las cosas con las que tratamos.

Responder a Sorancio Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Han muerto 259 personas en seis años… por tomarse una selfie

Emulación online de Commodore 64 en Internet Archive