O que é um programa de computador?

Agora que já falamos sobre a importância de se aprender programação, precisamos começar a entender o que programação de computadores significa na prática. Programação de computadores é o ato de desenvolver programas de computador. Mas o que é um programa de computador?

A resposta curta é: um programa de computador é a implementação de um algoritmo em uma linguagem de programação.

Vamos começar explicando o que é um algoritmo e depois explicaremos o que é uma linguagem de programação.

De acordo com o professor Donald Knuth, um dos cientistas da computação mais famosos do mundo, "um algoritmo é um conjunto de regras para se obter uma saída específica a partir de uma entrada específica. Cada passo de um algoritmo precisa ser definido de forma precisa o bastante para que ele seja traduzido para uma linguagem de programação e executado por um computador". Vale lembrar ainda que um algoritmo precisa terminar em um número finito de passos.

Se você ficou assustado com a definição de algoritmo dada acima, fique tranquilo. Pense em um algoritmo simplesmente como um passo a passo para se resolver um problema.

algoritmo programa

Para serem executados por um computador, algoritmos precisam ser traduzidos para uma linguagem de programação. Ao traduzir um algoritmo para uma linguagem de programação estamos criando um programa de computador.

Componentes de um programa

Frequentemente, ouvimos analogias entre algoritmos e receitas culinárias. Essa frequência é justificada, dadas as muitas semelhanças entre o preparo de um prato a partir de uma receita e a criação de um programa de computador a partir de um algoritmo.

Seguindo a analogia entre receitas/pratos e algoritmos/programas, um prato é a implementação de uma receita em um contexto específico (uma dada cozinha, por exemplo) e um programa é a implementação de um algoritmo em uma linguagem de programação específica.

Receita

Ainda segundo essa mesma analogia, o chefe de cozinha (quem cria a receita) é equivalente ao projetista de algoritmos ou arquiteto do sistema e o cozinheiro (quem prepara a receita) seria equivalente ao programador (quem implementa o algoritmo).

Retomando a definição de algoritmo dada acima, vemos que "um algoritmo nada mais é que uma sequência de regras, definida de forma precisa, descrevendo como produzir uma dada saída a partir de uma entrada específica em um número finito de passos". Note os três componentes dessa definição:

  1. Uma entrada específica.

  2. Uma sequência de regras (passos) a serem aplicados sobre a entrada.

  3. Uma saída específica.

Nesse sentido, cada algoritmo (e por consequência cada programa de computador) recebe uma entrada, realiza operações sobre essa entrada e produz uma saída. Quando estamos preparando uma receita, recebemos também uma entrada (os ingredientes), executamos os passos da receita sobre esses ingredientes e ao final temos uma saída (o prato desejado).

Agora que sabemos o que é um programa de computador, surge uma próxima pergunta: o que é uma linguagem de programação? A próxima seção lida com essa pergunta.

O que é uma linguagem de programação?

De acordo com a Wikipedia, "uma linguagem de programação é uma forma padronizada de se comunicar instruções a um computador".

Mas uma linguagem de programação pode ser vista como mais que isso. De acordo com o professor Hal Abelson, do MIT, "uma linguagem de programação é um meio formal de se expressar ideias sobre metodogia, e não simplesmente uma forma de fazer um computador executar instruções". Esta é uma observação importante, pois se formos capazes de expressar nossas ideias em uma linguagem de programação, elas estão maduras e detalhadas a ponto de serem colocadas em prática (por meio de um programa de computador).

Uma linguagem de programação precisa ter três componentes básicos:

  1. Vocabulário: Conjunto de palavras (elementos primitivos) da linguagem. Aqui entram também as chamadas palavras-chave da linguagem. Por exemplo, em Python, criamos uma função por meio da palavra def, mas outras linguagens usam palavras diferentes para isso. Esse tipo de escolha de palavras forma o que estamos chamando de vocabulário da linguagem.

  2. Sintaxe: Conjunto de regras para se escrever comandos na linguagem usando as palavras do vocabulário. Por exemplo, em Python, dados dois números a e b, podemos somá-los por meio do comando a + b. Em outras linguagens, esse mesmo comando poderia ser expresso como (+ a b). A sintaxe determina o modo como comandos e expressões da linguagem devem ser expressados.

  3. Semântica: Significado de cada comando na linguagem. Em outras palavras, a semântica trata do quê cada comando da linguagem quer dizer. Por exemplo, quando usamos a expressão p and q em Python, significa que a expressão terá um valor (resultado) lógico (verdadeiro ou falso) e que esse resultado só será verdadeiro se tanto p quanto q forem verdadeiros.

Agora que você já entende os componentes básicos de uma linguagem de programação, está na hora de aprender a criar programas em Python, uma das linguagens mais populares da atualidade!