2010/7/28 Carlos Nehab <[email protected]>:
> Oi, Luiz,
>
> Tô ausente da lista há algum tempo justamente por falta de tempo, mas
> gostaria de participar desta ...
Oi Nehab! Eu aproveitei o almoço hoje para perguntar para alguns
colegas franceses se essa história de "parênteses, colchetes, chaves"
existia por aqui... Parece que não, enfim, ninguém se lembra de ter
visto uma coisa dessas na escola.

Mas eu respondo mesmo porque eu gosto de perturbar, e você falou da
notação polonesa, eu não posso evitar falar da RPN (reverse polish
notation, ou notação polonesa invertida), e também propor um
probleminha.

> Vários colegas já responderam na linha de "é uma convenção", "tanto faz" e
> eu concordo com os comentários já postados.
> Mas talvez a chave da questão no que diz respeito ao ensino das notações
> disponíveis para representar expressões seja perceber que, na verdade, não é
> necessário nenhum símbolo separador para escrevê-las sem ambiguidade.
>
> Como a turma de computação aprende, você tem 3 formas usuais chamadas de
> infixa, pósfixa e préfixa para representar expressões.
> Algumas máquinas de calcular aceitam a forma préfixa naturalmente, também
> chamada de notação polonesa.
> Procure na Web os verbetes citados se quiser detalhes, mas ai dou apenas uma
> idéia da "notação polonesa" que, se ensinada às crianças, evitaria todas
> esta discussão.
>
> Por exemplo, para escrever expressões com esta notação escreva,
> recursivamente (repetidamente), o símbolo da operação em primeiro lugar e, à
> direita, as duas parcelas a ela associadas, na ordem em que ocorrem:
>
> Exemplinhos:
> a + b   será escrito como +ab
> a+ b*c será escrito como  +a*bc
> a * (b + c)  será escrito como *a+bc
> e assim sucessivamente.
>
> Ou eja a notação é chamada de préfica porque a operação precede as parcelas
> a elas associadas. Percebeu?
>
> Ou seja, o uso de parênteses, colchetes e chaves é apenas para facilitar o
> uso da notação usual que utilizamos que é burra e limitada, pois lemos da
> esquerda para a direita mas não necessariamente as operações que desejamos
> realizar sejam calculadas nesta ordem.   Teoricamente, no ocidente,
> portanto, a notação mais sensata é a préfixa (ou polonesa)...  Ma se eu
> fosse japones ou árabe, possivelmente (espero não estar dando mancada)
> preferiria a notação pósfixa... :-)

E se você fosse programador, talvez preferisse que seus utilizadores
usassem a notação posfixa, porque usa menos memória e as contas são
feitas diretamente na pilha, o que simplifica bastante o procedimento,
e deve acelerar um pouquinho as coisas ! De um ponto de vista
funcional (de função, não que seja mais simples...), a notação
polonesa inspira bastante f(a,b), se você pensar que f = adição,
enquanto a notação invertida é "a,b,f", que parece mais estranha
ainda. Mas eu prometo, é uma questão de hábito, como você disse. Em
vez de pensar "somar 2 e 3", e escrever isso como "somar(2,3)", você
tem que pensar: "eu tenho 2 e 3, e quero somar". De certa forma, isso
mantém os "argumentos" da função bem próximos, o que ajuda bastante o
programa.

E agora, uma charada:

+*+*123--45--678 = ?

> Abraços
> Nehab

Abraços,
-- 
Bernardo Freitas Paulo da Costa

=========================================================================
Instruções para entrar na lista, sair da lista e usar a lista em
http://www.mat.puc-rio.br/~obmlistas/obm-l.html
=========================================================================

Responder a