Posts com Tag ‘assembly’

Caros amigos e colegas!

Este artigo relata um pouco da minha experiência pessoal com desenvolvimento de software, predominantemente de firmware embarcado. Como muitos profissionais de minha geração, iniciei o meu aprendizado de programação preenchendo planilhas em papel para a posterior geração de cartões perfurados no padrão da IBM.  As correções e alterações do programa eu fazia perfurando manualmente novos cartões. A linguagem de programação era o FORTRAN IV e o programa era executado num computador de grande porte (Um Burroughs, se não me engano).

Cartão perfurado padrão IBM

Cartão perfurado no padrão da IBM, contendo uma linha de programa em FORTRAN IV

Mais tarde passei a programar calculadoras científicas, depois surgiram os primeiros microcomputadores pessoais, com programação em BASIC, em seguida passei a programar microcontroladores e microprocessadores em linguagem Assembly. Um montador de linguagem Assembly ou simplesmente um Assembler, era o máximo do luxo que podíamos ter. Em geral o código era convertido manualmente consultando-se a tabela de mnemônicos do microprocessador, traduzindo esse código e transferindo-o para o processador com auxílio de um equipamento programador apropriado. Era muito sofrido (apesar de divertido também).

Intellec MDS-80

Foto: Digibarn Computer Museum

Enquanto trabalhava no desenvolvimento de um SDCD (sistema digital de controle distribuído) tive meu primeiro contato com uma linguagem de alto nível para desenvolvimento de software para microprocessadores. O fantástico PL/M (Programming Language for Microcomputers) da Intel, rodado num sistema denominado MDS 80 (Microcomputer Development System for 8080) que utilizava discos flexíveis de 8 polegadas. Era pouco eficiente na geração de código, mas acelerava muito a produção do programa e facilitava a sua manutenção.

Depois de algum tempo, começaram a aparecer os  Apples, PCs, Microsoft, Compiladores C com interfaces amigáveis para geração e depuração de software para processadores, apareceram até os primeiros simuladores! (Um verdadeiro paraíso para um desenvolvedor). Quem entra na profissão nos dias de hoje, não imagina a sorte que tem! Atualmente um compilador C gera um código de máquina melhor do que muitos programadores experientes em assembly poderiam gerar. Só se programa em assembly no caso de extrema necessidade de otimização de código. (Ainda bem!!!)

8051

Exemplo de uma programa de desenvolvimento para o microcontrolador  8051 com simulador

Agora falando de boas práticas… Dificilmente pode-se falar em unanimidade quando o assunto é boas práticas. O que vou abordar aqui são as práticas que tive a sorte de conhecer e algumas eu mesmo desenvolvi. Para mim funcionaram muito bem! Talvez também sejam boas para você!

Eu sou, por natureza, organizado ao extremo com relação aos meus trabalhos profissionais. Quase sempre trabalhei em projetos de longo prazo e frequentemente com uma equipe reduzida. Há alguns anos trabalho praticamente só e por isso que eu acho que muitos dos meus colegas que trabalham por conta, ou são freelancers, podem tirar um bom proveito dessa minha experiência. Para profissionais como nós é essencial ter produtividade, mas também é necessário e essencial gastar algum tempo com um bom preparo, conforme já abordado no artigo “Projetos de Desenvolvimento: antes de começar – (Parte I)”. Deve-se investir também um pouco mais de tempo para aplicar algumas das boas práticas ao seu software, de forma que ele saia “redondo” e no final não se tenha que gastar muito tempo para fazer a manutenção dele e eventualmente “queimar” o seu bom nome como profissional Mais vale você investir algum tempo no desenvolvimento de um software de qualidade do que gastar um tempo longo na manutenção e reparo desse mesmo software.

Nos próximos artigos vou descrever as práticas propriamente ditas e apresentar algumas ferramentas de produtividade muito interessantes. Confira:

Se você tiver sugestões e críticas, por favor faça-as que serão muito bem vindas.

 Abraço!

Henrique

consulte sempre um engenheiro eletrônico

Licença Creative Commons
Esta obra, “Boas práticas para o desenvolvimento de software – Introdução“, de Henrique Frank W. Puhlmann, foi licenciada sob uma Licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 3.0 Não Adaptada.