Por
Victoria Thibes
Computadores são estúpidos. Isso pode vir como uma surpresa,
considerando que eles são capazes de fazer cálculos complexos em poucos
segundos, de forma que nenhum humano conseguiria. Mas é verdade!
Computadores são extremamente estúpidos e precisam de instruções exatas
para tudo o que fazem. O que é óbvio para você, humano, certamente não é
óbvio para uma máquina. E se você quer que a máquina faça algo pra
você, bem, você precisa, de certa forma, "falar com ela".
Você já
deve ter ouvido falar que computadores entendem apenas binário, ou
seja, a linguagem de 0 e 1. Todas as instruções que são dadas para eles
são traduzidas em sinais elétricos que significam, basicamente, ligado e
desligado. Pense em uma pequena lâmpada. Quando ela está ligada, indica
0. Quando desligada, indica 1. Isso é binário. E há uma infinita
quantidade de combinações que você pode fazer com isso.
É claro,
nenhum - talvez algum - humano na face da terra iria programar um Skyrim
ou mesmo um simples site da Web utilizando apenas 0 e 1. Isso seria
extremamente cansativo e demorado. Pra isso que servem as linguagens de
programação.
Pense em você e sua máquina. Você fala português,
mas a sua máquina fala apenas binário. Entre você e a máquina está um
intérprete, o compilador, mas ele só sabe binário e uma outra lingua -
Java, por exemplo. Aprender a "falar" Java é muito mais fácil que
aprender a "falar" binário. Isso porque Java possui muitas palavras em
comum com o inglês,e você pode escrever instruções que você entende,
como "imprima" ou "leia", ao invés de 001010001010101010. Assim, quando
você quer se comunicar com a sua máquina e criar uma série de instruções
para ela seguir, você escreve em Java para o compilador e ele traduz as
instruções para a máquina, em binário. Isso é uma linguagem de
programação.
Linguagens de programação podem ser catalogadas em dois tipos: de baixo nível e alto nível.
Isso não quer dizer que uma é mais rica que a outra ou algo do tipo.
Significa que uma está muito mais próxima da máquina do que a outra.
Vejamos Assembly, por exemplo. Assembly é uma linguagem de baixo nível e você pode usá-la para falar diretamente com o processador. Agora veja o seguinte algoritmo:
pushbx movah,2 int21H popbx incbx |
Se
você tivesse que chutar, saberia dizer pra que ele serve? Bem, ele faz
parte de uma função para mostrar caracteres em uma tela. As instruções
são dadas uma a uma para o processador (esse algoritmo faz parte de um trabalho feito para um Intel
8086), e envolve mexer em registradores, endereços de memória, mover
números aqui e empurrar ali. Com Assembly você mexe diretamente com a arquitetura interna do computador e a única forma de ir mais baixo que isso é programar em binário.
Agora, você sabe como pode escrever o algoritmo completo de imprimir uma mensagem em uma linguagem de alto nível?
printf("Mensagem que eu quero"); -> C Console.WriteLine("Mensagem que eu quero"); -> C# System.out.println("Mensagem que eu quero"); -> Java |
Mostrar
o algoritmo completo em três linguagens diferentes foi mais fácil que
mostrar parte dele em Assembly. Isso é porque C, C# e Java são
linguagens de nível muito mais alto, o que quer dizer que elas possuem
níveis de abstração muito maiores, ou seja, já vêm com instruções
predefinidas que, quando você coloca no compilador, significam todo
aquele algoritmo do Assembly.
E se você esquecer aquele ";" no final da linha?
Simples:
ele não roda. Quando você "fala" uma linguagem de programação, ao
contrário do português, não pode comer letras ou deixar instruções
subentendidas. É aí que entra a estupidez do computador. Ele não vai
entender um sujeito oculto, ou a intenção do programador se este não
dizer exatamente o que quer e da forma que quer.
Então, se você
quer aprender a programar, tenha isso em mente: você não precisa ser bom
em português, mas precisa saber muito bem as linguagens de programação
que pretende usar. Boa sorte!
0 comentários:
Postar um comentário
Deixe Seu Comentário