[SP-pm] [OFF-TOPIC] Masturbações Mentais sobre Undefined Behavior

Blabos de Blebe blabos at gmail.com
Mon Feb 14 05:42:05 PST 2011


Bom dia,

Sem querer entrar em flames, ou no mérito da discussão, que tomo
apenas como exemplo.

A thread abaixo é uma discussão que está acontecendo na principal
lista de C++ brasileira, sobre undefined behavior.

http://groups.google.com/group/ccppbrasil/browse_thread/thread/9b9a7be45917095e#

Notem como o Undefined behavior deste exemplo em particular pode ser
resolvido com 'codificação elegante'. Ok, o assunto era outro e foi só
um exemplo rápido, mas levantou a discussão que está acontecendo até
agora.

A maioria dos 'Undefined Behaviors' das linguagens de programação que
conheço (não são muitos) são casos específicos, incomuns, bem
documentados, bem avisados, normalmente abertos por 'depender da
implementação' e invocados por código porco de programadores meia-boca
(não que este caso de *exemplo* seja um).

É claro, nenhuma linguagem é perfeita (exceto lisp), mas elas possuem
especificações, mais abrangentes ou menos abrangentes. Por isso, não
importa a linguagem, ou você se aprofunda e aprende, ou mais cedo ou
mais tarte, vai acabar caindo em alguma dessas asrmadilhas.

Na minha opinião, C tem mais armadilhas e/ou hacks que precisam de um
pouco mais de conhecimento de arquitetura de computadores para escapar
do que Perl, enquanto Perl tem outros tipos de armadilhas.

Entenda armadilha aqui como "algo que eu imaginava de um jeito, mas
aconteceu de outro", independente da expectativa ser razoável ou não.

O negócio é que como Perl é mais fácil de lidar do que C, você alcança
as armadilhas de Perl mais cedo do que conseguiria caminhar em C para
alcançar as suas, logo, Perl parece mais imprevisível.

Abraços


More information about the SaoPaulo-pm mailing list