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