De cómo la RPN cambió las matemáticas para siempre
![RPN naukabits.com RPN naukabits.com](https://i0.wp.com/naukabits.com/wp-content/uploads/2024/07/rpn.png?resize=626%2C224&ssl=1)
Es un hecho. A muchísima gente le fastidian las matemáticas. En las escuelas e institutos es la asignatura más temida por muchísimos estudiantes que no la entienden, se frustran y no son capaces de resolver problemas. En este artículo no voy a hablar de cómo solucionar esto [ojalá supiera cómo], sino de una notación matemática llamada en inglés Reverse Polish Notation (RPN) [en español, Notación Polaca Inversa], que cambió las matemáticas para siempre, ofreciendo una nueva forma de realizar cálculos (que posteriormente se aplicarían a sistemas informáticos). Y todo, a partir de la cabeza de un señor polaco. Vamos a ver cómo fue la historia.
¿Qué es la Notación Polaca Inversa (RPN)?
En Matemáticas existe una notación que todo el mundo conoce, aunque no por su nombre, para realizar cálculos aritméticos con valores o variables. Es la notación infija (infix notation), en la que dos operandos (variables o valores) se encuentran a los lados de un operador aritmético, como puede ser la suma, resta, multiplicación, módulo, … etcétera. Un ejemplo de notación infija es:
3 + 4
Como ves, tenemos dos operandos (el 3 y el 4) y un operador, en este caso la suma que se encuentra en el medio de los dos.
Sin embargo, no es el único tipo de notación que existe. La Notación Polaca Inversa es un tipo de notación en el que los operadores siguen a sus operandos, es decir, primero se ponen los operandos y luego el operador. Si aplicamos esta notación al ejemplo anterior, tendremos que se notará de la siguiente forma:
3 4 +
¿Ves el cambio? Ahora, los operandos están al principio y el operador al final. Ésta es la notación polaca inversa y, como veremos más adelante, tiene numerosas aplicaciones en Computación. Sin embargo, antes de verlos, vamos a indagar un poco en cómo se desarrolló este sistema.
Origen e historia de la notación RPN
Jan Łukasiewicz
![Jan Lukasiewicz RPN Jan Lukasiewicz RPN](https://i0.wp.com/naukabits.com/wp-content/uploads/2024/07/Jan_Lukasiewicz.jpg?resize=296%2C381&ssl=1)
La historia de la notación polaca inversa comienza en la década de 1920, con el trabajo del matemático polaco Jan Łukasiewicz. Nacido en 1878 en Lvov (entonces parte del Imperio Austro-Húngaro), Łukasiewicz fue un brillante lógico y filósofo que desarrolló lo que se conoce como notación polaca o notación de prefijo (prefix notation, en inglés). En este sistema los operadores preceden a los operandos. Por ejemplo, «+ 3 4» en lugar de «3 + 4». Es decir, en vez de estar en el medio como en la notación infija, los operadores están al principio.
Łukasiewicz creó esta notación como parte de su trabajo en lógica matemática, buscando una forma más eficiente de representar fórmulas lógicas sin necesidad de paréntesis. Su innovación sentó las bases para futuros desarrollos en la representación de expresiones matemáticas.
Charles Leonard Hamblin
![Charles Hamblin RPN Charles Hamblin RPN](https://i0.wp.com/naukabits.com/wp-content/uploads/2024/07/charles_hamblin.jpg?resize=310%2C388&ssl=1)
Aunque la notación de Łukasiewicz fue innovadora, no fue hasta la década de 1950 cuando se desarrolló la notación polaca inversa que conocemos hoy, también denominada postfix notation. Además, no fue él quien la desarrolló, sino un filósofo y científico computacional australiano llamado Charles Leonard Hamblin.
En 1957, Hamblin publicó un artículo titulado «An Addressless Coding Scheme based on Mathematical Notation» en el que presentó una versión invertida de la notación polaca de Łukasiewicz. Esta nueva notación, que colocaba los operadores después de los operandos, se convertiría en lo que ahora conocemos como notación polaca inversa, como hemos visto antes.
Hamblin reconoció que esta notación invertida tenía ventajas significativas para la programación de computadoras. Algunas de éstas son:
- Se elimina la necesidad de paréntesis en expresiones complejas (y no tanto), lo cual simplifica la escritura y lectura de fórmulas y expresiones matemáticas.
- Facilita la evaluación de expresiones matemáticas por parte de las computadoras, ya que el orden de las operaciones está implícito en la notación misma.
- Se reduce el número de pasos para calcular expresiones y mejorar la eficiencia en la programación de calculadoras y computadoras.
Por lo tanto, al eliminar la necesidad de paréntesis y simplificar la evaluación de expresiones, la notación polaca inversa permitía un procesamiento más eficiente de las operaciones matemáticas. Este descubrimiento sentaría las bases para una revolución en el diseño de calculadoras y en la programación de computadoras. En un artículo posterior y para no hacer este muy largo, hablaré de cómo intercambiar expresiones matemáticas entre las diferentes notaciones infix, prefix y postfix. De momento, te dejaré con algunos ejemplos de conversión:
Ejemplo 1
Infix: a + b * c --> Postfix: a b c * +
Ejemplo 2
Postfix: a b + c d - * --> Infix: (a + b) * (c - d)
Ejemplo 3
Infix: a + b / (c - d) --> Prefix: + a / b - c d
Ejemplo 4
Prefix: - * + a b c / d e --> Postfix: a b + c * d e / -
El uso de RPN
En la industria y en la educación
La notación polaca inversa (RPN) dio un salto significativo en popularidad en la década de 1960 y 1970, gracias a su adopción por parte de la industria de las calculadoras. En 1968, los ingenieros de Hewlett-Packard (HP) estaban trabajando en el desarrollo de una nueva calculadora científica. Buscaban una forma de implementar funciones complejas en un dispositivo portátil con memoria limitada.
El resultado de este esfuerzo fue la HP-35, lanzada en 1972, que se convirtió en la primera calculadora científica de bolsillo del mundo. Lo que la hacía verdaderamente revolucionaria era su uso de la notación polaca inversa. Esta decisión permitió a HP crear una calculadora potente y versátil en un formato compacto, capaz de realizar cálculos complejos con una eficiencia sin precedentes.
La adopción de la notación polaca inversa por parte de HP tuvo un impacto significativo más allá del mundo de la tecnología. Muchos estudiantes e ingenieros aprendieron a usar esta notación, y se convirtió en un estándar en ciertos campos de la ingeniería y las finanzas. Las universidades comenzaron a enseñar esta notación en sus cursos de matemáticas y ciencias de la computación, influyendo en toda una generación de profesionales.
En la computación
A medida que avanzaba la era de la computación, la RPN encontró nuevas aplicaciones más allá de las calculadoras. Varios lenguajes de programación, como Forth y PostScript, adoptaron la notación polaca inversa como su sintaxis principal. Forth, en particular, se hizo popular en sistemas embebidos y aplicaciones de tiempo real debido a su eficiencia y simplicidad.
Además, muchos compiladores comenzaron a utilizar internamente esta notación para optimizar el procesamiento de expresiones matemáticas. La simplicidad y eficiencia de la notación polaca inversa la hacían ideal para la evaluación rápida de expresiones complejas, lo que llevó a mejoras significativas en el rendimiento de los programas compilados.
En el campo de la inteligencia artificial, la notación polaca inversa ha demostrado ser útil en el procesamiento del lenguaje natural y en la representación de conocimientos. Su estructura lógica y sin ambigüedades la hace particularmente adecuada para la manipulación de expresiones simbólicas en sistemas de IA.
Conclusión
La historia de la notación polaca inversa es un viaje de casi un siglo de innovación matemática y tecnológica. Desde sus orígenes en la lógica matemática de Jan Łukasiewicz, pasando por la inversión de Charles Hamblin, hasta su adopción generalizada en la industria de las calculadoras y su continua influencia en la informática moderna, la notación polaca inversa (RPN) ha dejado una huella indeleble en el mundo de las matemáticas y la tecnología.
Aunque ya no es tan prominente en la tecnología de consumo, su legado perdura en campos especializados y continúa influyendo en el diseño de algoritmos y sistemas computacionales eficientes. A medida que nos adentramos en nuevas fronteras tecnológicas, como la computación cuántica y la inteligencia artificial avanzada, es probable que la notación polaca inversa encuentre nuevas aplicaciones y siga siendo una herramienta valiosa para los matemáticos, ingenieros y científicos computacionales del futuro.
La historia de la notación polaca inversa nos recuerda la importancia de la innovación en la representación matemática y cómo un cambio aparentemente simple en la forma de escribir expresiones puede tener un impacto profundo y duradero en la tecnología y la ciencia. Su evolución desde un concepto teórico hasta una herramienta práctica ampliamente utilizada ilustra el poder de las ideas matemáticas para dar forma a nuestro mundo tecnológico.
Bibliografía
- Łukasiewicz, J. (1929). Elementy logiki matematycznej. Warszawa: Państwowe Wydawnictwo Naukowe.
- Hamblin, C. L. (1957). An Addressless Coding Scheme based on Mathematical Notation. Journal of the Australian Computer Society, 1(1), 6-9.
- Wirth, N. (1977). Algorithms + Data Structures = Programs. Prentice Hall.
- Burks, A. W., Warren, D. W., & Wright, J. B. (1954). An Analysis of a Logical Machine Using Parenthesis-Free Notation. Mathematical Tables and Other Aids to Computation, 8(46), 53-57.
- Dijkstra, E. W. (1963). Making a Translator for ALGOL 60. ALGOL Bulletin Supplement, 10, 21-32.
- Ball, J. A. (1978). Algorithms for RPN calculators. John Wiley & Sons.
- Kowalski, R. A. (1974). Predicate Logic as Programming Language. Information Processing, 74, 569-574.
- Knuth, D. E. (1997). The Art of Computer Programming, Volume 1: Fundamental Algorithms. Addison-Wesley Professional.
- Forth, Inc. (1970). FORTH: A Language for Interactive Computing.
- Adobe Systems Incorporated. (1985). PostScript Language Reference Manual. Addison-Wesley.