Oi, Bernardo (e Luiz)

Você tem toda razão, mais achei mais natural para o Luiz ele primeiro se divertir com a notação prefixada. É mais natural.

Na verdade já programei durante MUITOS anos e fui também professor na área... 
Mas sem querer ser saudosista (já sendo) lembro aos jovens que meu primeiro PC tinha 64k de memória e meu HD 10 Mb (isto mesmo)...
Além disso no IME, onde cursei Engenharia Elétrica (1965/1969) - me formei há mais de 40 anos... o IBM 1130 tinha 8k de memória e não era muititarefa... Tempos inacreditáveis...

E sem nenhum saudosismo bobo, naquela época programar era mais do que uma arte.  Era mágico.
E isto em linguagens malucas, como Assembler, Mumps, PL1, Pascal / Turbo Pascal e... até Cobol... (um saco) e... outras linguagens "exdruxulas" da época.
Pouco depois do C e da Orientação a Objeto, acabou meu saco e eu me decidi pela Matemágica... 

Mas na linha da fronteira entre Informática e Matemática, também durante anos fui professor de Técnicas de Construção de Algoritmos (inclusive Algoritmos Heurísticos), Matemática Discreta, Linguagens Formais, Complexidade de Computação, etc, para a galera de Ciência da Computação e, cá prá nós, isto é mais matemática do que informática, né...
 
Portanto, meu comentário sobre as notações in/pós/prefixas vêm deste saudoso tempo (1970 a 2000).

Quanto à sua charada, deixo como exercício pro Luiz, responsável por esta discussão...

Grande abraço,
Nehab

PS: Gostosa inveja de você ai na França... Ralando muito ou apenas passando férias?


Bernardo Freitas Paulo da Costa escreveu:
2010/7/28 Carlos Nehab <ne...@infolink.com.br>:
  
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,
  

========================================================================= 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