Nós
comandamos nosso computador para absorver textos em português
na forma de caracteres ASCII. O que ele pode
fazer com isso?
Obviamente não interessa pedir para ele somar, multiplicar ou
dividir como nós podemos fazer com os números. No momento, os
computadores não sabem fazer - ou melhor, nós não sabemos realmente
como dizer aos computadores para fazerem - a espécie de operações
com palavras que nós podemos fazer em nossos cérebros.
Para fins práticos, no momento um computador trabalha com as palavras
usando operações que derivam de uma única operação aritmética:
a subtração. Lembre-se que a máquina só sabe lidar com números
e que, até aqui, palavras nada mais são do que bytes (valores)
alinhados na memória.
Suponha então que uma empresa queira saber se alguém chamado Benedito
é seu cliente. O cadastro de clientes conterá uma lista com o
nome de todas as pessoas que já compraram alguma coisa na empresa.
Para encontrar alguém especificamente, o operador deverá digitar
o nome desejado, que será convertido automaticamente em valores
binários. Por exemplo, a letra "B" é a representação
ASCII do valor 66. Assim, todos os nomes que
começarem por "A" terão, como primeiro byte,
o valor 65 e os nomes que começarem com "C"
terão o valor 67 no primeiro byte.
O que o computador faz, para "achar" o Sr Benedito,
é subtrair 66 de 65. Como o resultado não é zero, ele sabe que
nem adianta continuar pois o nome não poderá ser aquele. A operação
seguinte é avançar para o próximo nome, até achar na lista um
nome que comece com o valor 66.
Achando o nome que satisfaça a condição, o teste passa a ser feito
nas letras seguintes e, resultando em zero até o final da palavra,
pode-se dizer que aquele é sem dúvida o Sr Benedito.
A tradução desde procedimento, em termos de linguagem de programação
de alto nível, pode parecer simples. Usando instruções "se" e
"então", seria algo como:
if
'BENEDITO' = 'ARTUR' then TENTE_NOVAMENTE
...
if 'BENEDITO' = 'BENEDITO' then AVISE_QUE_ENCONTROU
É
claro que as coisas não se passam exatamente desta maneira, num
programa minimamente estruturado mas o princípio é esse aí mesmo.
Quando dizemos que o computador subtraiu uma palavra da outra,
na verdade estamos dizendo que cada um dos bytes de uma palavra
foi subtraído do seu correspondente na outra palavra. Se o resultado
geral, feito letra a letra, for zero, então a palavra foi encontrada.
Com esse recurso podemos construir todas as funções encontradas
nos modernos processadores de texto, como por exemplo: correção
ortográfica, tradução, ordenação, etc. Não parece ser muito complicado,
visto por este prisma e na verdade não o é. O segredo da aparente
"inteligência" do computador está na velocidade com a qual ele
faz essas coisas. |