20 março 2011

Linguagem de máquina – Como o computador entende a nossa língua

Para os humanos a interação não seria completamente nada sem o alfabeto e os números não é mesmo? Mas com os computadores isso é um pouco diferente. Chamada de "linguagem binaria", os famosos 1 e 0 é o que dão origem a essa linguagem. Entenda um pouco sobre como ela funciona.

Para entender melhor como funciona essa TRADUÇÃO da linguagem humana para a linguagem de máquina, como assim é chamada, é preciso saber o alfabeto binário (não necessariamente decorá-lo).

Cada algarismo 1 ou 0, é chamado de bit (binary digit) e para que se forme um dígito são necessários oito bits e cada conjunto de oito bits é chamado de byte, normalmente. Veja o alfabeto binário:

A 01000001 B 01000010 C 01000011 D 01000100 E 01000101 F 01000110
G 01000111 H 01001000 I 01001001 J 01001010 K 01001011 L 01001100
M 01001101 N 01001110 O 01001111 P 01010000 Q 01010001 R 01010010
S 01010011 T 01010100 U 01010101 V 01010110 W 01010111 X 01011000 Y 01011001 Z 01011010

Essa é a codificação ASCII (American Standard Code for Information Interchange ou Código Padrão Americano para Intercâmbio de Informações) e é a mais usada.

Se você pedir um comando para que, por exemplo, seja encontrado todos os números primos até um inteiro n, nossa estratégia tem de seguir uma lógica como se fosse usada na aula de matemática, no caso. Aí ficará da seguinte forma:

1. Obter números do intervalo [2, n];
2. Apagar os números maiores que e divisíveis por 2;
3. Obter próximo primo p;
4. Se p for menor que a raiz quadrada de n, então:
4.1. Apagar os números maiores que e divisíveis por p;
4.2. Ir ao passo 3;
5. Senão:
5.1. Ir ao passo 6;
6. Fim.

Este modelo numérico antes de cada comando é o chamado algoritmo usado em várias linguagens de programação.

Obviamente, um algoritmo deve ser executado por algum ser. Este ser pode ser uma pessoa munida de certos equipamentos e utensílios ou por máquinas projetadas para executar automaticamente algumas instruções básicas. Mas preciso saber se esse ser, ou agente, é capaz de interpretar as instruções. Pegando o exemplo acima, se a pessoa souber o que é um número primo, raiz quadrada e os números divisíveis por 2 e p, ele é capaz. Não sabendo de ao menos um desses itens ele se torna incapaz. Então há essa necessidade de saber a capacidade do agente que no computador é conhecido com Processador ou CPU.

Você deve estar se perguntando: "Cada letra desse comando acima eu vou ter que passar par a linguagem dos "0" e "1"?" Não se assuste. Hoje existem vários tradutores encarregados de fazer essa tradução da linguagem humana para a linguagem de máquina e vice-versa.

Bom, isso é o básico do básico. Se você pretende ser um programador de renome, vale a pena estudar bastante (que nem eu) e a internet contém vários meios ao qual já o faz ficar por dentro do mundo dos programadores.
Pesquise. Você só tem a ganhar!

12 comentários:

  1. Sabia que eu como programador, nunca tinha tido essa curiosidade ?
    Material muito legal!
    parabens!

    ResponderExcluir
  2. materia mto interessante parabens pelo blog

    ResponderExcluir
  3. Super legal teu blog.
    Parabéns.

    ResponderExcluir
  4. Rapaz, que legal isso aí! Eu sou intrigado como o mundo dos computadores funciona, gostei muito!

    ResponderExcluir
  5. Confuso, mas interessante. Apesar de eu não ser muito fã de números...

    ResponderExcluir
  6. minha namo já havia comentado...vim aqui agora..muito boa a materia parceiro..msm

    ResponderExcluir
  7. Gostei muito do post, bem esclarecedor e curioso, mostrando-nos como as coisas funcionam. Como disse no fim do post, só temos a ganhar em conhecimento.
    ABraço.

    ResponderExcluir
  8. Muito bom! Isso fica bem visível na Linguagem C.

    ResponderExcluir
  9. Ok. Também concordo, uma ótima matéria.

    ResponderExcluir
  10. acredito q nunnnnca vou conseguir entender a linguagem do computador
    http://cabelobeleza.com

    ResponderExcluir
  11. bom blog e boa matéria.
    estudo programação na universidade e isso foi bem interessante

    http://guitarrasenanquim.blogspot.com/

    ResponderExcluir
  12. Um assunto muito interessante: http://pt.wikipedia.org/wiki/Assembly
    Linguagem de Máquina!

    ResponderExcluir

*Crie sua conta para exibir sua imagem no comentário: Registre-se