Diferenças entre edições de "Notação polonesa inversa"

824 bytes adicionados ,  19h06min de 27 de agosto de 2021
m (Concordância de número; TOC)
{{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]].
 
__TOC__
 
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:
|}
 
== UsoCálculo emcom máquinaso auxílio de uma pilha ==
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>
 
 
Esta expressão pode ser representada em notação polonesa inversa como:
<!-- Exemplo encontrado na Versão Inglesa -->
5 1 2 + 4 × + 3 −
 
DaLendo a notação da esquerda para a direita, podemosos passos para calculá-la numa máquina desão pilhaos comoseguintes:
 
# Leia um caractere da notação.
{| class="wikitable" style="text-align: center; margin: 0 auto 0 auto;"
# 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.
! scope="row" rowspan="3" style="padding: 2em 1em;" | Pilha
{| class="wikitable" style="text-align: center; margin: 0 auto;"
| || || {{Ind|2}} || || {{Ind|4}} || || || ||
|+
! 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
| || {{Ind|1}} || {{parcial2|1}} || {{Ven|3}} || {{parcial2|3}} || {{Ven|12}} || || {{Ind|3}} ||
|Colocar 5 na pilha
|5
|
|
|
| rowspan="3" |
|-
|1
| {{Ind|5}} || {{parcial2|5}} || {{parcial2|5}} || {{parcial2|5}} || {{parcial2|5}} || {{parcial2|5}} || {{Ven|17}} || {{parcial2|17}} || {{Ven|14}}
|Colocar 1 na pilha
|5
|1
|
|
|-
|2
 
|Colocar 2 na pilha
! scope="row" style="padding: 2em 1em;" | Operação
|5
| style="padding: 2em;" | Empilhar 5 || Empilhar 1 || Empilhar 2 || Somar 2 e 1 || Empilhar 4 || Multiplicar 4 por 3 || Somar 12 e 5 || Empilhar 3 || Subtrair 3 de 17
|1
|2
|
|-
| +
 
|Soma
! scope="row" style="padding: 2em 1em;" | Notação
|5
| 5 || 1|| 2|| + || 4 || × || + || 3 || -
|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).
|}
 
Como observado, não são necessários parênteses ao utilizar a notação polonesa inversa.
 
== Ver também ==
2 909

edições