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

20 março 2011
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 :

{ Tyr.Marcelo } at: 21 março, 2011 17:36 disse...

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

{ o outro lado } at: 22 março, 2011 15:14 disse...

materia mto interessante parabens pelo blog

{ Rubi } at: 22 março, 2011 23:51 disse...

Super legal teu blog.
Parabéns.

{ Andre Mansim } at: 23 março, 2011 07:12 disse...

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

{ Barbara Nonato } at: 23 março, 2011 12:39 disse...

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

{ Unknown } at: 23 março, 2011 15:48 disse...

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

{ Samir } at: 24 março, 2011 01:09 disse...

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.

Anônimo at: 25 março, 2011 21:04 disse...

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

Anônimo at: 26 março, 2011 02:15 disse...

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

Anônimo at: 03 abril, 2011 23:45 disse...

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

{ Unknown } at: 09 abril, 2011 17:44 disse...

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

http://guitarrasenanquim.blogspot.com/

{ Guilherme Pedroso } at: 28 agosto, 2011 15:21 disse...

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