Notação polonesa inversa: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
m Concordância de número; TOC |
|||
Linha 1:
{{Ver desambig| redir=RPN| a emissora de rádio de João Pessoa | Rede Paraibana de Notícias}}
'''Notação Polonesa Inversa''' (ou '''RPN''' na sigla em [[língua inglesa|inglês]], de '''''R'''everse '''P'''olish '''N'''otation''), também conhecida como '''notação pós-fixada''', foi inventada pelo [[filósofo]] e cientista da [[computação]] [[Austrália|australiano]] [[Charles Hamblin]] em meados dos [[anos 1950]], para habilitar armazenamento de memória de endereço zero. Ela deriva da [[notação polonesa]], introduzida em [[1920]] pelo [[matemática|matemático]] [[Polônia|polonês]] [[Jan Łukasiewicz]]. (Daí o nome sugerido de ''notação Zciweisakul''.) Hamblin apresentou seu trabalho numa conferência em Junho de [[1957]], e o publicou em 1957 e [[1962]].
Conquanto rejeitado em primeira apreciação por parte da maioria dos utilizadores, sob a alegação de ser "muito difícil, preferindo-se a convencional", tudo não passa de apenas uma primeira impressão de quem não tem familiaridade com a nova notação e, pois, com as suas vantagens. Quer na computação automatizada, quer no cálculo manual assistido por instrumentos de cálculo ([[calculadora]]s, ''lato sensu''), a notação polonesa reversa (RPN) apresenta as seguintes vantagens:
Linha 39 ⟶ 37:
|}
==
A notação polonesa inversa é utilizada em linguagens de programação de pilhas de dados, como [[Forth]].<ref>http://www.dei.isep.ipp.pt/~luis/stack_machines/cap3.html ''Resumo da linguagem de programação Forth – Departamento de Engenharia Informática''</ref>
Linha 47 ⟶ 45:
Esta expressão pode ser representada em notação polonesa inversa como:
5 1 2 + 4 × + 3 −
# Leia um caractere da notação.
# Se for um operando, empilhe-o, isto é, coloque-o no topo da pilha.
# Mas se ele for um operador, retire o penúltimo e o último operando da pilha. Faça a operação que se pede entre eles e coloque o resultado de volta na pilha.
# Repita todos os passos acima até que toda a notação seja lida.
# O resultado será o que sobrou na pilha.
A tabela abaixo demonstra os passos para se calcular a expressão anterior. Observa-se que, devido a lógica da notação polonesa inversa, ela dispensa a utilização de parênteses.
{| class="wikitable" style="text-align: center; margin: 0 auto;"
|+
! style="padding: 2em 1em;" |Notação
! style="padding: 2em 1em;" |Operação a ser realizada
! style="padding: 2em 1em;" colspan="4" |Pilha
! style="padding: 2em 1em;" |Descrição
|-
|5
|Colocar 5 na pilha
|5
|
|
|
| rowspan="3" |
|-
|1
|Colocar 1 na pilha
|5
|1
|
|
|-
|2
|Colocar 2 na pilha
|5
|1
|2
|
|-
| +
|Soma
|5
|3
|
|
|Pegue os dois últimos valores da pilha (1, 2), faça 1 + 2 e coloque o resultado (3) de volta na pilha.
|-
|4
|Colocar 4 na pilha
|5
|3
|4
|
|
|-
|×
|Multiplicação
|5
|12
|
|
|Pegue os dois últimos valores da pilha (3, 4), faça 3 × 4 e coloque o resultado (12) de volta na pilha.
|-
| +
|Soma
|17
|
|
|
|Pegue os dois últimos valores da pilha (5, 12), faça 5 + 12 e coloque o resultado (17) de volta na pilha.
|-
|3
|Colocar 3 na pilha
|17
|3
|
|
|
|-
| -
|Subtração
|14
|
|
|
|Pegue os dois últimos valores da pilha (17, 3), faça 17 - 3 e coloque o resultado (14) de volta na pilha.
|-
|Fim
|Tomar o resultado
|14
|
|
|
|A notação foi lida por completo. O resultado é o que sobrou na pilha (14).
|}
== Ver também ==
|