O que é a programação?

O que iremos cobrir?
Uma introdução as terminologias da computação, alguma história e ainda um breve olhar sobre a estrutura de um programa de computador.

De volta ao BASICo

A programação é a arte de fazer com que o computador faça exactamente o que desejamos que ele faça.

ao nível mais simples consistirá em enviar uma sequência de comandos para um computador por forma a atingir um determinado objectivo. Ou que o computador execute uma determinada função. No mundo da Microsoft, os utilizadores do MS DOS costumavam ficheiros de texto que iriam conter uma lista de comandos, esses ficheiros tinham uma extensão BAT. Estes ficheiros simplesmente executam uma sequência de comandos BATCH. Ainda é possível criar estes ficheiros em ambientes Windows mas a realidade é que hoje em dia quase ninguém o faz. Sendo portanto muito raramente visto.

Por exemplo, poderás estar a produzir um documento (tal como este Tutorial o é) que por sua vez comprime vários ficheiros separados. O teu processador de texto poderia produzir uma cópia de backup de cada ficheiro a medida que os ias guardando as novas versões do ficheiro. No final do dia de trabalho poderias querer por a versão mais recente do documento (e de todos os ficheiros que dele fazem parte) num directório de backup' directório/pasta. Finalmente e para deixar tudo limpinho e como deve ser, deveria se apagar as versões antigas contidas nesse mesmo directório (para não criar confusão). Esta tarefa poderia ser toda por um simples ficheiro .BAT que iríamos criar para esse solo propósito. Esse ficheiro teria mais ou menos esta aparência:

COPY *.HTM BACKUP
DEL *.BAK

Se o ficheiro fosse para ser chamado SAVE.BAT então ao final de cada dia eu por e simplesmente escreveria SAVE na prompt do DOS e os ficheiros seriam guardados e os backups eliminados. Isto é que é um programa.

Nota: Os utilizadores do Linux ou de outros sistemas operativos têm a sua própria versão deste tipo de ficheiro, normalmente são conhecidos por shell script. Na shell do Unix estes scripts são muito mais poderosos que os ficheiros BAT do DOS e suportam a maioria das técnicas de programação que iremos discutir durante este curso.

Deixem-me repetir isto mais uma vez

Se estas um pouco assustado/a com tudo isto, meus caros por favor não estejam. Um programa de computador é simplesmente um conjunto de instruções para dizer ao computador como executar uma determinada tarefa em particular. Tal como uma receita culinária: que diz ao cozinheiro/a como se deve fazer tal prato em particular. E descreve os ingredientes (data) e os passos a seguir (o processo) para converter tais ingredientes numa sopa, ou outra coisa qualquer que se esteja a cozinhar. os programa seguem o mesmo tipo de conceito

Um pouco de história

Da mesma forma que falas com um amigo numa determinada língua, é a mesma forma como falas com um computador . usando a língua do computador. A única linguagem que um computador entende é a linguagem binária, que por sua vez tem vários dialectos - é por isso que programas do iMac não correm no teu PC e vice-versa. O código binário é, infelizmente, muito difícil para os humanos lerem e escreverem, por isso somos de certa obrigados a usar uma linguagem intermédia que mais tarde será traduzida para linguagem binária É como ter o Clinton e o Yieltsin numa reunião de comité - O Clinton fala, o interprete repete o que ele disse em russo. Depois o Yieltsin responde e o interprete mais, mais uma vez repete do dito, mas desta vez em Inglês.

De uma forma muito inovadora, decidiu-se chamar o tradutor da linguagem intermediária para linguagem binária de interprete (original, huh!!). e da mesma forma que normalmente se necessita de um interprete para traduzir de Russo para Inglês e de outro de outro para traduzir de Chinês para Russo (por exemplo), também precisamos de interpretes diferentes para traduzir o Python para linguagem binária e outro para traduzir de Basic para linguagem binária.

Na verdade o primeiros programadores tinham que introduzir linguagem binária directamente, e isso é muito difícil. Então o passo seguinte foi criar um tradutor que simplesmente traduziria uma lingua comum (digamos o inglês) para a linguagem binária. Isso fez com que as coisas ficassem muito mais simples, então em vez de estarmos a massacrar a memória tentando lembrar que o código 001273 05 05 significa adicionar 5 a 4, os programadores por e simplesmente escreveriam add 5 4. Este simples avanço facilitou a vida a toda a gente, estes códigos de sistema foram na realidade as primeiras linguagens de programação, um para cada tipo de computador. Esta linguagem passou a ser conhecida como programação por assembler, hoje em dia ainda é utilizada em algumas tarefas muito especificas.

embora tudo isto pareça um pouco primitivo, porque trata-se de dizer ao computador o que esta a acontecer ao nível do hardaware - mover estes bytes desta localização da memória para uma outra localização etc. Era de qualquer das formas muito difícil e exigia muita programação e esforço para conseguir cumprir tarefas aparentemente simples.

Gradualmente os cientistas computacionais desenvolveram outras linguagens de mais alto nível para facilitaras suas vidas. Isto também deveu-se também ao facto que os utilizadores estavam constantemente a inventar tarefas cada vez mais complicadas para os computadores resolverem! Esta "competição" entre os utilizadores e os cientistas ainda existe sendo isso razão do aparecimento de muitas novas linguagens. Tudo isto faz com que a programação se torne numa coisa muito interessante, mas também faz que tu como programador tenhas que compreender não só os conceitos da programação mas também as vantagens e desvantagens em faze-lo numa determinada linguagem.

Iremos agora discutir alguns desses conceitos de programação, mas desde já digo que serão uma constante durante todo este curso..

Os pontos em comum de todos os programas

Era uma vez um senhor chamado Edsgar Dijkstra e ele apareceu com um conceito chamado structured programming. que dizia que todos os programas podiam ser estruturados das seguintes quatro maneiras :

Juntamente com esta estrutura, os programas também precisam de mais algumas coisas para que se possam tornar utéis:

Uma vez que compreendas estes conceitos e como cada linguagem em particular as implementa, então estarás apto para escrever um programa nessa linguagem.

Algumas das terminologias

Já foi dito que a programação é a arte de fazer com que um computador faça aquilo que pretendemos que ele faça, mas o que é um programa?

Na realidade existem dois conceitos de programas. O primeiro é aquele que é visto do ponto de vista do utilizador - onde um programa é um ficheiro executável que é instalado e pode-se correr vezes sem conta para se realizar uma determinada tarefa. Por exemplo os utilizadores falam em correr o programa de processamento de texto. Por outro lado existe a visão do programador onde o programa é um ficheiro de texto cheio de instruções para o computador, escrito numa linguagem de programação, e que poderá ser traduzido num ficheiro executável. Portanto qaundo falares sobre um programa presta sempre atenção a qual dos dois conceitos te referes.

Basicamente um programador "escreve" um programa numa linguagem de alto nível, que posteriormente será interpretado para byte por forma a que o computador possa entender o que foi escrito. Em linguagem técnica o programador escreve um source code e o interprete cria um object code. por vezes o object code pode ter outros nomes como: P-code, código binário, ou linguagem de máquina.

O interprete é conhecido como o interprete (que surpresa!!) e por outras vezes como o compilador. Estes termos na realidade referem-se a duas técnicas de criar object code a partir da source code. Costuma ser o caso onde os compiladores produziam object code que podem ser utilizados por si mesmos (ficheiros executáveis - outro termo). Enquanto os interpretes tem que estar presente por forma a que o object code que ele criou possa correr. Mas hoje em dia a linha que separa estes dois conceitos esta cada vez mais fina, desde que alguns compiladores agora requerm a presença de um interprete parta fazer a conversão final e alguns interpretes simplesmente compilam a source para ficheiro temporário de object code e depois executam-no

Da no nossa perspectiva não faz diferença nenhuma porque vamos escrever a source code e depois e  utlizaremos um utilitário para o executar.

A Estrutura de um programa

a exacta estrutura de um programa esta não só dependente da linguagem de programação utilizada mas também como do ambiente onde esse programa será executado. Contudo existem alguns princípios comuns a todos:

A maioria dos programas segue um deste padrões:

Programas Batch

Testes são os programas que na sua maioria são iniciados a partir de uma linha de comando (ou então automaticamente através de um utilitário Scheduler) e na sua maioria tendem a seguir um padrão:

Programas guiados por eventos

A maioria dos sistemas GUI (Graphical user interface - como a Microondas, as câmaras etc), são softwares guiados por um evento. Isto é o sistema operativo envia eventos ao programa e o programa responde medida que estes vão chegando. Eventos esses que podem ser- coisas que o utilizador vai fazendo - como um clicar do rato ou o premir um botão - ou então coisas que o sistema vai fazendo automaticamente como - actualizar o relógio ou o ecrã.

os programas guiados por eventos, normalmente um tipo de padrão:

Coisas a não esquecer
  • Os controlam o computador
  • Linguagens de programação permitem-nos comunicar com o computador de uma forma mais próxima da linguagem humana do que da linguagem do computador
  • Programas operam sobre dados
  • Programas podem ser Programas Batch como Guiados por eventos
Próxima  Anterior  Índice


Em caso que tenhas alguma dúvida ou queiras comentar esta página envia-me um e-mail para: babyboy@oninet.pt