Notação Polonesa Reversa – RPN

Todo o usuário de calculadora HP já ouviu o mantra: ah, use em RPN! Ah, em RPN é mais fácil! Mas, de onde surgiu isso?

Em 1920, o matemático polonês Jan Łukasiewicz inventa a notação polonesa. Ele inventou este método para facilitar a visualização das fórmulas de lógica proposicional.

Esse sistema caracterizava-se pela ausência de parênteses na notação. Embora não tenha feito sucesso na lógica, ele continua sendo utilizado até hoje em algumas linguagens de programação (a linguagem LISP sendo a mais proeminente).

Em meados da década de 50, Burks, Warren e Wright propõem a notação polonesa reversa, e a notação foi reinventada independentemente por F. L. Bauer e E. W. Dijkstra, como uma forma de reduzir o acesso à memória em programas computacionais, bem como fazer a utilização do recurso da pilha. Estes algoritmos foram enriquecidos pelo trabalho do filósofo e cientista computacional Charles Hamblin, na década de 50.

A notação polonesa ganhou destaque na década de 70, por sua adoção nas calculadoras HP. As calculadoras de maior sucesso da empresa, a financeira 12-C e a gráfica 48 são baseadas em notação polonesa reversa. A calculadora 19B, financeira, foi rejeitada pelo mercado por não ter o modo RPN. As calculadoras gráficas atuais, desde a 49 até a 50-G, permitem o uso em algébrico como em RPN.

Utilizando RPN

Para entender o modo RPN, precisamos entender o que é apilha. Pilha é um modo de entrada e organização de dados. Veja a figura ao lado: O último dado que entra é o primeiro dado que sai (conhecido como LIFO – Last In First Out). Uma conta simples, como um 3+2, seria feita em RPN desta maneira: 3 <ENTER> 2+: ao pressionarmos ENTER, o 3 irá para a pilha, ao pressionarmos o 2 +, ele se somará ao último valor da pilha. Bom, para quê todo este trabalho, podemos pensar ? Porque, aparentemente trabalhoso em contas pequenas, este método será de grande valia ao programarmos a calculadora, bem como em contas grandes. Um exemplo ?[ (5+3)/2]*6. Em RPN, a conta seria feita dessa maneira: 5<ENTER>3+ 2/ 6*. Em um total de 8 botões pressionados. Em modo algébrico, seria: <BOTÃO BRANCO> <-> (para aparecer o parênteses) <BOTÃO BRANCO> <->5+3<SETA DIREITA> (para ir ao segundo parêntese>/2<SETA DIREITA> (para sair fora do parêntese>*6. Um total de 14 botões pressionados para se realizar a mesma conta.

Como aprender a utilizar o modo RPN? Só conheço uma maneira: praticando. Não adiantar ter medo: a prática irá levar a um maior conhecimento e domínio da técnica. Boas eram as antigas 48: pela falta do método algébrico, forçavam o usuário a dominar RPN.

fonte: http://mauromartins.wordpress.com/2009/06/15/rpn/

Deixar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *