Realidades Paralelas

Wednesday, March 29, 2006

Grafos e C++

Postando muito pouco por aqui, prazos abundam. Prazos tipo deadlines, entende?

Trabalhando em artigos para enviar, e trabalhando mais com teoria dos grafos, os testes principalmente sendo feitos em C++.

Houve uma época em que eu programava muito em C++, lia livros, entendia vários dos detalhes esotéricos da linguagem -- sabia que uma classe com membros virtuais e cujo destrutor não é virtual pode causar vazementos de memória? Pois é, essa é C++.

Depois eu subi na vida e passei a usar linguagens mais decentes. Agora, voltando a usar C++, dá para ver de maneira mais isenta como a linguagem é brain damaged. Os exemplos são muitos, mas só para ficar com um probleminha menor da biblioteca padrão: fstream::open recebe um parâmetro que é o nome do arquivo para abrir; seria de se esperar que a função aceitasse uma string C++ como nome do arquivo, mas não: só strings char* em estilo C.

Enfim, grafos por todos os lados e C++, infelizmente. Eventualmente eu devo voltar a estudar implementação paralela de linguagens funcionais. Algum dia.

Friday, March 03, 2006

Resenhas

Escrevi duas resenhas na Amazon.com, estão nas páginas dos respectivos livros:
Foi bom porque eu finalmente entendi os motivos porque eu não gosto do Projeto Moderno de Compiladores, e muito tem a ver com a péssima diagramação dele. E fica pior na versão traduzida, porque esse formato de livro-texto brasileiro (mais largo e alto que o americano) leva a linhas mais longas e páginas maiores, o que torna a leitura ainda mais cansativa.

Também por motivos de qualidade da tradução e diagramação eu vendi o meu exemplar nacional do Essentials of Programming Languages e comprei o importado. Bem melhor. Já o Organização e Projeto de Computadores: A Interface-Hardware Software eu comprei traduzido mesmo. Apesar de alguns deslizes e de não ser colorido (o original é preto, cinza e azul), a versão brasileira é muito boa.

Ainda sobre livros, tá faltando ou eu não encontrei um que seria "Assembly Intel x86 Moderno para Escritores de Compiladores". Todos os livros de assembly que eu vi têm alguma falha: ou são superficiais demais, ou são livros-texto e incluem até a parte 16 bits, ou usam uma notação maluca (o AoA de Randall Hyde) ou etc. Livros até sobre como gerar código para a JVM e o CLR .NET, mas não para a plataforma mais usada na atualidade. Que por sinal também é uma das mais complicadas para gerar código. O jeito por enquanto é ficar com os manuais da Intel e AMD.

E a AMD agora só tem no site os manuais da arquitetura AMD64. 32 bits morreu por eles. Bom, vou parar de reclamar.