[SP-pm] SaoPaulo-pm Digest, Vol 71, Issue 49

Pinguim Azul bluepenguin at gmail.com
Fri Aug 20 08:09:29 PDT 2010


On Fri, Aug 20, 2010 at 11:16 AM,  <thiagoglauco at ticursos.net> wrote:
>
> Eu apenas concordo com isso. Todos são livres para discordar.

Eu discordo, porque eu acho que a premissa é errada. Nós não
deveríamos modelar linguagens de computador em linguagens humanas,
porque linguagens humanas são horríveis: elas são ambíguas e propensas
a erro. Por exemplo, se o Joãozinho atirou água em seu pai, ele atirou
no pai de quem está lendo ou no pai do Joãozinho? Você não poderia
admitir isso numa linguagem de programação, pois você pode programar
A, o compilador entender B, e aí teu programa tem bug e você não sabe
o porquê.

Isso acontece um bocado com linguagens da linha do C e do Perl, o
sujeito escreve 1+2<<2 esperando que a resposta seja 9, aí ele compila
e o resultado é 12, como fica? O que acontece é que 1+2<<2 é ambíguo,
e o compilador vai resolver isso definindo arbitrariamente uma ordem
de precedência, que no caso do C, contra-intuitivamente, é primeiro o
+ e depois o <<.

Tem um paper de psicologia muito bom chamado The Magic Number 7 que
fala qual o perigo disso:

http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two

Em geral, mentes humanas conseguem processar só 7 fatos ao mesmo
tempo. Se a ordem de precedência não é explicíta no código, então ela
precisa ficar guardada na cabeça do sujeito que está programando. Aí,
ele só pode lidar com 6 coisas ao invés de 7, porque um slot está
ocupado. E, a cada regra que desambiguiza a linguagem, esse contador
vai diminuindo, até o ponto em que você precisa de muita concentração
pra conseguir programar, porque está no limite de coisas simultâneas
que teu cérebro aguenta.

IMHO deveríamos modelar linguagens de modo a eliminar a ambiguidade,
não a adicioná-la. E se a sua premissa é ir na direção das linguagens
naturais, então a ambiguidade vai aparecer mais cedo ou mais tarde.

-- 
Ricardo Bittencourt
http://www.ricbit.com


More information about the SaoPaulo-pm mailing list