Computando palavras
Como o computador reconhece e manipula palavras

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.

 
online