sábado, 23 de abril de 2016

Diário de bordo 6# - Uma palavra sobre programação

O Arduino, assim como qualquer computador, necessita ser programado para que seja, de alguma forma, útil. Utilizaremos, neste projeto, a linguagem de programação "padrão" do Arduino, que é baseada nas linguagens C e C++. Os exemplos neste post serão, para se assemelhar ao que veremos mais à frente (em posts futuros), em linguagem C (mais sobre linguagens de programação adiante).

É, certamente, difícil introduzir todos os conceitos básicos sobre programação em um pequeno post; para que não se torne exaustivo ler este post, serei breve.

Computadores não compreendem linguagens humanas; tudo o que realmente compreendem traduz-se em instruções passadas em "linguagem de máquina", baseada em operações com binários. Computadores são, de certa forma, complexas e poderosas calculadoras. Normalmente utilizam-se linguagens de programação para criar softwares para computadores: escreve-se o código em linguagem legível para humanos, que depois é "traduzido" para a "linguagem de máquina". C é uma das mais conhecidas e amplamente utilizadas linguagens de programação, apesar de ser consideravelmente antiga (criada em 1972, na AT&T Bell Labs por Dennis Ritchie).

Programas (softwares) são, basicamente, algorítimos --  conjunto de instruções que devem ser seguidas de forma lógica para atingir algum objetivo. Pode-se, por exemplo, considerar uma receita de bolo um simples algorítimo:
"Pegue os ingredientes x, y e z, misture-os e leve o resultado ao forno (dentro de um recipiente); a cada 10 minutos verifique se está pronto e, caso esteja, remova-o do forno imediatamente".
Praticamente qualquer processo lógico pode ser descrito por um algorítimo. 

Podem ocorrer bugs, erros de programação que fazem com que determinado programa não funcione como esperado. A remoção de bugs é uma das partes mais importantes do processo de desenvolvimento de softwares, podendo custar muito tempo. Normalmente, são identificados com o uso do programa, seja em testes ou não.

Veja um exemplo de algorítimo extremamente simples, escrito em linguagem C, que verifica e informa ao usuário se dado número é negativo ou então positivo ou igual a zero:

Este código, por exemplo, pode (possivelmente) ser compreendido por alguém que nunca programou antes com relativa facilidade. Ele, claramente, é "traduzido" à linguagem de máquina para ser executado. Certamente, seria absurdamente mais custoso desenvolvê-lo em linguagem de máquina (prática incomum na maioria das situações). Por motivos óbvios, programas mais complexos demandam algorítimos maiores e complexos, dificultando sua compreensão por inexperientes e, em alguns casos, até mesmos por experientes programadores. Por este motivo, costumeiramente, documenta-se o código de diversas formas, até mesmo dentro do próprio código-fonte, por meio de comentários -- trechos demarcados, ignorados pelo compilador e que, portanto, não se transformam em instruções em linguagem de máquina e têm como objetivo informar (aos humanos) sobre o que é feito em determinado trecho. Observe um exemplo de comentário "em C":

Apenas uma observação: as cores servem apenas para facilitar a visualização. A coloração é adicionada automaticamente pelo editor utilizado, mas sem modificar o arquivo que contém o código (não são armazenadas nele informações sobre a coloração do mesmo).

Pretendemos disponibilizar todo o código fonte escrito para o projeto, conforme for produzido (em linguagem C). 


Nenhum comentário:

Postar um comentário