Consulte a Melhor Programação para o seu filho

Consulte a melhor programação para o seu filho

Ver todas as atrações


Hello World!

02 de Fevereiro de 2019 | Techkids

lucianalouro-sistemabinario-fev2019.jpg (111 KB)

Por Luciana Louro

Como recém começamos 2019, parece pertinente resgatar as previsões para este ano (sim, para 2019) de Isaac Asimov, feitas no dia 31 de dezembro de 1983. Para o escritor de ficção científica, o sistema educacional de 2019 estaria preocupado com a “alfabetização informática” que ensinaria ao estudante como utilizar, criar e conviver com a “alta tecnologia”.

Países como a França, o Canadá e a Inglaterra já inseriram a Ciência da Computação em seus currículos dos anos iniciais da Educação Básica. A disciplina inclui noções de linguagem de programação, bem como de robótica. O Brasil, por sua vez, caminha a passos lentos e resistentes em direção ao ano de 2019 previsto pelo gênio futurista.

Mas nós, do IMATech, faremos nossa parte e continuaremos divulgando a importância desse saber, bem como ajudando pais e educadores a letrar e alfabetizar computacionalmente seus pequenos, aprendendo como a tecnologia contemporânea funciona no processo. Afinal, como já disse Guimarães Rosa: “Mestre não é quem sempre ensina, mas quem de repente aprende”.

No primeiro artigo dessa série, aprendemos a representar quantidades numericamente de acordo com a notação posicional do sistema binário. Em seguida, uma brincadeira natalina ensinou como colocar esse princípio em prática. Hoje, descobriremos como o computador consegue dizer 'olá' para o mundo ou "Hello World". O “Hello World” é o primeiro programa ensinado para os estudantes em qualquer linguagem de programação. Ele foi criado pelo cientista Brian Kernighan em 1972 para exibir o input e output (leia o artigo que explica esse princípio aqui) da função printf.

Mas o que é função? Já vimos no artigo dos algoritmos que um programa é um algoritmo traduzido em linguagem de programação. Uma função é um programa já pronto que pode ser usado em outros programas quando “chamada” pelo seu nome. Por exemplo, imagine que você gostaria de programar um robô para varrer o chão da sua casa. A princípio você teria que esmiuçar o processo de varrer em um algoritmo, traduzindo-o, em seguida, em linhas de códigos. Se você for um bom programador ou uma boa programadora, você criará a função “varrer” que conterá todos os códigos relativos ao algoritmo dessa rotina.

Sem essa função seria necessário reescrever esses códigos a cada vez que fosse previsto que o robô executasse essa ação, o que deixaria o seu código gigantesco e propício a erros. Além do mais, você poderia disponibilizar a função “varrer” para os outros programadores que precisassem utilizá-la em seus programas (afinal quem não quer um robô para varrer o chão?). Ou seja, as funções são bem úteis e simpáticas. As funções serão vistas com mais profundidade ao longo desse ano. Agora, voltemos aos binários.

A pergunta é: como o computador consegue dizer “Hello World” e muito mais se a língua dele é feita de 0 e 1s? (Para entender o que é linguagem de máquina veja o artigo sobre o clube do zero e um). Simples, ele tem uma tabela de equivalência de números binários, números decimais, números octais (que são contados de 8 em 8) e hexagonais (que são contados de 16 em 16, mas usa letras para representar as quantidades a partir de 10 unidades) para caracteres. Caracteres são o conjunto de símbolos e comandos disponíveis no teclado dos computadores, chamados de sinais gráficos e sinais de controle.

O nome dessa tabela é ASCII (American Standard Code for Information Interchange ou "Código Padrão Americano para o Intercâmbio de Informação"). Trata-se de uma convenção internacional para que todos os computadores traduzissem seus 0 e 1s em letras, números ou comandos do mesmo jeito.

Imagine a torre de Babel se cada país, ou pior, se cada computador fizesse isso de forma diferente? Seria impossível ter os sistemas operacionais universais que temos hoje. Seria preciso um “Windows”, um “OS” ou um “Linux” para cada tabela inventada. Mas felizmente programadores são bons não somente em resolver problemas como em antecipá-los. Assim ainda na aurora da computação, em 1960, essa tabela começou a ser desenvolvida.

Para compreender como essa equivalência funciona, iremos ilustrar o processo com uma tabela simplificada. Tal recurso didático é normalmente utilizado pelo IMATech para explicar como o computador diz “Hello World” e escreve o nome do seu filho ou filha. Como inserir o recurso em uma brincadeira será explicado no próximo artigo dessa série.

Primeiro é preciso lembrar como o computador faz para contar e como é feita a equivalência para o número decimal. Para isso releia os dois últimos artigos aqui e aqui. Pronto, lembrou?

Agora vamos explicar como escrever, por exemplo, um nome em sistema binário. Vamos usar o nome ARTHUR (o aluno número zero do IMATech e filho da autora desse blog). Atenção, o nome está escrito em caixa alta ou maiúsculas. Se escrevermos Arthur teremos outro resultado. Se optarmos por arthur também teremos uma sequência numérica diferente.

Por quê? Porque para cada símbolo é uma sequência de oito 0 ou 1s (bits) que, juntos, formam um byte. Logo, “A” é representado, a grosso modo, por um número binário de oito posições (um byte) e a é representado por outro número que possui o mesmo número do mesmo tamanho (outro byte). Vejam como isso acontece observando uma tabela fictícia simplificada com cinco posições que correspondem à ordem alfabética da figura_1:

lucianalouro-figura_1.jpg (85 KB)

Observe a tabela e perceba como as letras correspondem a números decimais que são convertidos em números binários. Para escrever o nome ARTHUR em binário basta consultar a tabela e teremos a figura 2:

lucianalouro-figura_2.jpg (37 KB)

A tabela ASCII (fig. 3) funciona de acordo com esse princípio, mas usa oito posições que codificam 256 caracteres (símbolos gráficos e numéricos ou comandos de controle) diferentes. Padronizados internacionalmente são somente 128, os outros variam de acordo com cada país. O Brasil, por exemplo, já teve 850 caracteres, incluindo o ç. Abaixo você poderá observar a tabela ASCII adaptada somente com números binários e letras maiúsculas do alfabeto. A tabela original prevê todos os sinais gráficos ou imprimíveis (letras, números etc) e de controle não imprimíveis (aqueles que dão comandos para máquina). A ASCII também usa outras notações posicionais como a octal (que conta de 8 em 8 unidades) e a hexadecimal (que conta de 16 em 16, mas usa letras para representar as quantidades a partir de 10 unidades).

lucianalouro-figura_3.jpg (65 KB)

Mas, didaticamente falando, o sistema binário é o mais indicado, pois além de ser a base da computação também permite que os raciocínios relacionados à notação posicional e representação numérica sejam amplamente explorados. Agora veja o nome “ARTHUR” sendo traduzido para o sistema binário de acordo com a tabela ASCII.

lucianalouro-figura_4.jpg (39 KB)

Parabéns se você chegou ao fim desse artigo, agora, você faz parte do grupo de pessoas que compreendem a verdadeira língua do computador (ou pelo menos a mais universal). Compreender como o sistema binário se relaciona com a tecnologia contemporânea é muito mais do que uma curiosidade, é um letramento necessário para entender como o conhecimento é construído, armazenado e negociado no mundo no qual vivemos.