Description
Nesta palestra vou apresentar as técnicas que utilizei no desenvolvimento de uma aplicação real em C, o monitor de processos htop (http://hisham.hm/htop, disponível no repositório de sua distribuição Linux favorita). O htop é uma aplicação interativa para console, escrita em C usando a biblioteca ncurses, mas foi feita usando um estilo de programação totalmente orientado a objetos.
Veremos que programadores em C não precisam se render ao C++ para colher os benefícios da orientação a objetos nos seus programas.
A abordagem que será apresentada é extremamente minimalista, e não depende de bibliotecas ou frameworks para programação OO.
Apresentarei as estruturas de dados usadas na construção do htop, e com isso discutiremos algumas técnicas para simplificar a gerência de memória em uma linguagem sem coleta automática de lixo como C.
Veremos como é possível utilizar todos os conceitos típicos de orientação a objetos (herança, subtipagem, polimorfismo) implementando-os diretamente.
Programando em C, entenderemos melhor o overhead de desempenho de cada um destes recursos, e podemos “pagar o preço” somente quando necessário.
Usando um estilo de programação disciplinado, veremos como é possível “domar os ponteiros” de C e tornar os segmentation faults fenômenos infrequentes (sim! é possível!).