Clique aqui para voltar à página inicial  http://www.novomilenio.inf.br/ano97/cpmcom14.htm
Publicado originalmente pelo autor no caderno Informática
do jornal A Tribuna de Santos, em 30 de setembro de 1997
Última modificação em (mês/dia/ano/horário): 05/20/00 22:32:30
POR DENTRO DO COMPUTADOR - 14
Software, o que faz o micro trabalhar 

Por definição, usa-se dizer entre pessoas ligadas ao mundo da computação que hardware é a parte do computador que tem peso: o monitor, a CPU, a impressora, o teclado, o mouse. O software, por contraposição, é a parte leve, na verdade sem peso: são os programas que vão controlar o computador, transmitindo as instruções desejadas pelos usuários. Há quem fale em peopleware (o usuário do computador) e até em vaporware (um programa que teve lançamento anunciado mas não apareceu no mercado)...

Já existiu um tempo em que, toda vez que se ligava um computador, era preciso informar à máquina como localizar um monitor ou uma impressora, e ensinar toda a tarefa. Ficou evidente a necessidade de reunir todas essas instruções em algum lugar e ensinar o computador a ir buscá-las automaticamente nesse lugar. Nasceu assim o software. Um detalhe, já contado no início desta série, é que na verdade o software nasceu antes do computador que pudesse utilizá-lo, e foi criado por uma mulher, que se tornou assim a primeira programadora de computadores no mundo: Ada Lovelace, filha de Lord Byron, no início do século XIX.

Como o computador só entende o código binário, formado por zeros e uns (correspondendo ao estado de desligado ou ligado das microchaves eletrônicas), os primeiros programas serviam justamente para programar a posição dessas chaves, uma por uma, no código binário. Para facilitar, passou a ser usado o código hexadecimal (com menos dígitos a serem escritos e portanto menor possibilidade de erros de digitação), em programas como o Assembler. Ainda assim, continuava sendo o homem a se adaptar inteiramente à máquina, e não o contrário).

Começaram a surgir linguagens de programação mais próximas da linguagem escrita comum, como o Basic, que utiliza palavras ou trechos de palavras inglesas para transmitir comandos, que a própria linguagem se encarregaria de converter para algo compreensível pelo processador. A demora extra que o computador teria para fazer essas conversões era compensada pela maior rapidez dos novos processadores. E em certos trechos do programa, onde a velocidade de processamento seria importante, poderiam ser embutidos trechos diretamente em linguagem de máquina.

Surgiu assim o conceito de programas de baixo e alto nível. O mais baixo nível é o entendido pelo computador, e o mais alto nível é o que mais se aproxima de um texto comum de uma carta. Como o Basic e a linguagem de arquivos-de-lote (batch) do DOS eram insuficientes para atender a necessidades específicas, passaram a surgir as linguagens especializadas, para negócios (Cobol, Dbase), para a atividade científica (Pascal), para educação infantil (Logo) etc.

Estrutura - Um programa de computador deve seguir uma certa lógica. Você não precisa dizer a uma pessoa que se levante da cadeira, coloque um pé à frente do outro para andar, siga em frente até a mesa, levante o braço até alcançar uma caneta, feche a mão sobre a caneta, levante-a da mesa, dê meia volta, coloque um pé à frente do outro, seguindo em frente até poder lhe entregar a caneta. Diz apenas para a pessoa pegar a caneta e lhe entregar. Já o computador precisa receber todas essas instruções, e na ordem certa, caso contrário se atrapalha e faz errado ou simplesmente fica parado, esperando que você lhe diga o que fazer.

Mesmo que os programas já tenham embutidas as informações básicas, e você não precise ensinar cada passo a ser dado, ainda assim é preciso que as instruções sejam dadas na ordem certa. Se você programar o computador para pegar a caneta antes de se levantar e andar, ou simplesmente não ensinar a ele o que fazer caso não exista caneta sobre a mesa, ele simplesmente informará que não alcança a caneta e ficará parado. Também pode acontecer de você, por distração, programar o computador para ficar indo e vindo sem pegar a caneta, e como a ordem é que ele lhe entregue a caneta, ele entrará no que se chama de loop infinito: fará algo semelhante a andar em círculos.

Linguagens como o Basic facilitavam a ocorrência dos chamados erros de lógica, como o loop infinito, o desvio da rotina de processamento para uma outra rotina não programada (algo como dizer a alguém para sair por uma porta e junto a essa porta só existir uma profunda cratera). Quanto mais extenso e alterado for um programa, mais fácil acontecerem erros de lógica assim (que os programadores chamam de bugs, a palavra significando insetos em inglês). Daí, a necessidade de linguagens estruturadas, em que a própria estrutura mais rígida dificultava a ocorrência de erros de programação, ao apontar a localização desses erros. Da mesma forma que um prédio não pode ter cobertura sem a existência das estruturas ou das paredes, um programa em linguagem estruturada não deve funcionar se houver falta de certos componentes, por exemplo.

PowerPoint permite criar apresentações multimídia com alguns cliques do mouse
PowerPoint permite criar apresentações multimídia com alguns cliques do mouse

Objeto - Até então, o programador precisava se preocupar mais com a forma como eram escritos os programas. Nos anos 90, passaram a ganhar força as chamadas linguagens voltadas a objeto, em que o programador se preocupa mais em estabelecer os objetivos a atingir do que com a forma como o programa será escrito.

Por exemplo, se o objetivo é criar um formulário para entrada ou apresentação de fichas de clientes, antes o programador teria que se preocupar em criar um banco de dados, os arquivos para indexá-lo por ordem alfabética ou de registro, desenhar o formulário para a entrada dos dados e estabelecer todas as ligações entre as diferentes partes do programa.

Na programação orientada a objeto, o programador apenas desenha o formulário, usando o mouse para selecionar desenhos e arrastá-los pela tela até o local desejado desse formulário, alterar o tamanho desses desenhos, colocar alguns botões  no formulário, onde se possa clicar para executar um determinado trabalho, e o banco de dados está pronto para receber e classificar as informações. Pode ser que o programador não tenha escrito sequer uma linha de código, o próprio programa onde foi feita a montagem do formulário se encarrega de gerar os arquivos necessários. Um exemplo de programas assim é o Visual Objects for Windows. Aliás, quando alguém aciona o item de gravação de macro, dentro do editor de textos Word, está na realidade fazendo um pequeno programa voltado a objeto.

Merecem citação ainda certos meta-programas, isto é, softwares que convertem ou interpretam outros programas. A linguagem em alto nível, por precisar ser traduzida, tende a ser mais lenta. Para ganhar velocidade, existe a possibilidade de usar compiladores e interpretadores de comandos (geralmente disponíveis junto com os programas originais), que transformam em linguagem de máquina os arquivos criados em linguagem de alto nível pelo programador. Essas versões compiladas devem rodar mais rápido, já que o computador não precisará traduzi-las cada vez que precisar rodá-las.