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
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. |