NONIUS
nş9 ISSN 0870-7669 Fevereiro de 1988
Folha Informativa do Projecto "Computação no Ensino da Matemática"

COMPUTADORES, LINGUAGENS E PROGRAMAÇÃO
(Conferência proferida numa sessão das tardes da Matemática
na Escola Secundária Avelar Brotero por
Paulo Eduardo Oliveira)

 

Computadores , linguagens e programação é um titulo que deixa em aberto a possibilidade de dizer qualquer coisa que esteja ligada com os computadores No entanto nesta Pxposição vamos seguir a sequência dos assuntos indicados no título, que me parece importante esclarecer alguns assuntos ligados a estes três aspectos gerais da computação. Um computador é algo que está hoje bastante na moda. Toda a gente diz que é essencial saber trabalhar com o computador e, muitos chegam a dizer que quem não souber trabalhar com computadores será, num futuro próximo, como um analfabeto, Pretende-se ho)e utilizar computadores em todas as actividades humanas, sejam elas de gestão ou de aplicações nos domínios da ciência. Assiste-se hoje em dia@ para alegria dos fabricantes e vendedores de matrial informático, a uma corrida "louca" a este tipo de material, chegando-se w ponto de, parecer que um computador é indispensável para fazer investigação, por exemplo. No entanto, as justificações que se dão para a compra do material são muitas vezes pouco convincentes acerca da sua verdadeira utilidade na actividades onde é pressuposto aplicar o computador. Tudo isto é fruto de um desconhecimento do que é um computador por parte de multas pessoas e também do potencial que o computador abriu nos domínios onde (i sua aplicação é obiecto de maiores cuidack)s, Note-se que o conhecimento do que é um computador é algo que pode significar coisa,:, diferentes conforme o objectivo do trabalho onde se pretende ut!],,-.7ar o computador. De um modo geral preter@@le-se o computador para correr determinados programas, ou para escrever alguns programas., pelo que o conhecimento profundo da estrutura interna de um computador é, a maior parte das vezes, supérfluo. O modo como será descrito o computador durante esta exposição não chega para o trabalho de um engenheiro electrotécnico, por exemplo, que pretenda construir ou arranjar um comnputador, No entanto, para a maioria dos ijtilizadores de computadores este é apenas um meio de trabalho que se utiliza do mesmo modo que outros instrumentos já mais vulgares, como os electrodomésticos, por exemplo. Não . @ necessário conhecer pofundamente um electrodoméstico para o utilizar diariamente, embora seja útil ter uma pequena ideia da sua utilização para melhor se tirar partido das suas capacidades (a menos que este se)a demasiado simples). Também com o computador se passa o mesmo. Vamos então tentar responder, de um modo simples, a pergunta: O que p, um computadora? Essencialmente é uma máquina eléctrica que tem a capacidade de armazenar grandes quantidades de informação e tambem de transformar essa informação de um modo organizado e muito mais rapidamente que qualquer ser humano. Todas estas potencialid<idp,s são ronseguidas atravps de circuitos electricoo.. Os circuitos têm, como P. óbvio, características especiais, pois caso contrário qualquer vulgar fo@ão de cozinha serviria como computador, O modo como os circuitos são constituídos não é relevante nesta abordagem ao computador, o que nos interessa é que são dieferente dos habituais e que podem armazenar e transformar informação. Já nos interessa saber um pouco mal . s acerca do modo como a informação é representada. Um circuito é uma unidade à qual estão associados dois estados: o estado 0, correspondente a não passar corrente, e o estado 1 , correspondente a passar corrente. Cada unidade destas é designada por BIT. Se se pretender armazenar informação com um bit apenas se podem guardar dois estados: um. correspondente a não passar corrente e outro correspondente a passar corrente.

Refira-se desde já que se estabelece uma correspondência entre o facto de passsr- ou não corrente e a informação que se pretende representar, isto é não se armazena a informação directamente, mas uma sua representação. No entanto um bit pouca utilidade tem, que dois estados possíveis é manifestamente pouco para que possa ser útil. A solução adoptada para se conseguir maior número de estados representavas foi a de, agrupar vários bits. Deste modo nasceu o BYTE, que não é mais do que um con.lunto de oito @lts Assim um computador, em vê-., de trabalhar com um bit de cada vez, trabalha com grupos de oito bits, isto é com bytes. Refira-se que com um byte é possível representar 28-256 estados diferentes.

@-,Iote--:^e. que Pste prciee@@,-so -H, irii-llo@io i5iiiiilcj

se faz nos sistemas de numeração. Este processo tem ainda a vantagem de tornar mais rápida a transferência de informação já que esta é dividida e tratada em unidades maiorec., Hoje a maioria dos computadores não usa o byte como unidade de representação da informação mas conjuntos de dois byte,-,-@ Isto e, utiliza 16 bits na representação, podendo deste modo trabalhar 216=65536 estados diferentes. É de referir que existem já alquns computadores de 32 bits e até de 64 bits. Como e de esperar quanto maior for o número de blts utilizado na unidade de representação maior será o número de estados representáveis e maior será, também, a velocidade de tratamento de informaoo. Repare-se que esta representação da informação lembra claramente o sistema de numeração binária. De facto toda a informação no computador é transformada numa sequência de zeros e uns em grupos de 8, 16 ou 32 conforme o computador.

Até agora falámos apenas acerca da representação de informação no computador, isto é, na mem£@riá do computador, Mas existem outras componentes principais do computador, que permitem transformar intormaçào e receber ou comunicar informação.

A unidade de controlo tem informação que não é estática, isto é, informação que permite actuar sobre putra informação e transformá-la. É esta unidade que opera as transformações, que serve para executar tarefas e não apenas para armazenar informação, como a memória, de um modo passivo. Tal como a memória é constituída por bits, mas estes têm uma função diferente daqueles que constituem a memória. Não nos interessa como executam essas funções especiais, basta saber que executam. No entanto é de relembrar que todas as instruções que esta unidade de controlo seja suposta executar devem ser dadas sob a forma de sequências adequadas de zeros e uns.

A unidade de entrada/saída serve para comunicarmos com o computador e viceversa. É através desta unidade que podemos introduzir programas e dados no computador. E é através desta unidade que o computador fornece oc. resultado<:.-, @uuando trabairiamos com uma máquina é através desta unidade que n, fa@@-ernos. Ela é constituída, normalmente, por um ecran para que o computador forneça os resultados (mas pode ser também uma impressora) e por um teclado para que nós possamos fornecer alguma informação ao computador

E aqui levanta-se o problema da comunicação com o computador. Este apenas "entende" onformação sob a forma de seqijênci " de zeros e uns, portanto poderíamos pensar em escrever os programa<.D (que são conjuntos de ordens para transformar ou armazenar informação) como sequências de zeros e uns. É uma solução, embora não seia muito conveniente. Escrever programas deste modo tem o inconveniente de tornar a escrita de qualquer instrução longa e de reconhecimento difícil. Assim escrever programas seria uma tarefa fastidiosa e pouco eficiente. De facto, como para escrever um programa são, normalmente, necessárias muitas instruções, um programa serip, constituído por uma sequência extremamente longa de símbolos O @ 1. É fácil de prever que a escritas de semelhante texto implicaria vários erros de dactilografia, mesmo para um dactilógrafo experimentado. Imagine-se agora o trabalho necessário para descobrir onde está o erro cometido quando se tem pela frente 50 páginas de zeros e uns. E 50 páginas não seria um programa muito grande. Estas dificuldades levaram a que se procurasse um pocesso mais p@a@tico de comunicar com o computador, isto é, arranjar uma linguagem mais simples que permitisse comunicar com a maquina. @ó que se essa 1 i nguagem é mais faci I mente nteleqível para nos (humanos) ela deixa de ,-@er intelegivel para o computador O processo de resolver este problema é escrever um programa (com zeros e uns) que pegue numa versão "humana" e a traduza numa versão "computodarizc-&", isto é, intelegível para o computador , dos programas que nós queiramos escrever. O modo mais fácil e imediato para conseguir este ob ' lectivo consiste em utilizar menemónicas para as diversas instruções que podemso transmitir ao computador, Uma linguagem assim obtida designa-se por Assembler. No entanto, este tipo de linguagens tem o inconveniente de ser demasiado próxima dos .7eros e uns, isto é, embora seja mais fácil de ler e de descobrir eventuais erros, é ainda moroso escrever programas, Para além desta dificuldade temos ainda o facto de ela ser muito dependente da unidade de controlo, isto é, teremos um Assembler que é "entendido" por uma determinada unidade de controlo. Se mudarmos para um computador com uma unidade de controlo diferente este poderá não entender o programa que estaria correctamente escrito para a primeira unidade de controlo, Isto obviamente cri . a algumas dificuldades que seria desejável resolver para que fosse possí.vel escrever programas que sejam mgrios dependentes da máquina que se utiliza. O processo seguinte foi o de "humân!,,7ar" mais as linguagens de programação e dificultar mais a "tradução" para algo que o computador "entenda".

Deste modo nasceram muitas linguagens que são razoavelmente próximas das humanas e que necessitam ser co177pi'lot;É7s, Estas linguagens constituídas por- instruções e estão são sujeitas a determinadas regras gramaticais Não se fala agora de tradução mas de compilação pois cada instrução de uma destas linguagens é traduzido de uma forma complexa em sequências de zeros e uns, e esse trwuçào pode ser feita de vários modos, Não se trata aqui de uma simples substituição de simbolos, como no caso de Assembler, tratasse de correspondências de objectivos, os qijais podem ser conseguidos. de diferentes maneiras, cabendo ao compilador escolher o modo mais adequado de conseguir esses objectivos, Este tipo de abordagem ao problema da comunica@@ao com o computador foi adoptado quase universalmente. Usando esta abordagem todos os utilizadores de computadores pretendiam possuir uma linguagem de programação que fosse adequada aos seus problemas, isto e, que tivessa instruções que lhe facilitassem a programação de um determinado tipo de tarefas frequentes no,^@seus problemas Deste modo nasceram multas linguagens, grande parte das quais nunca foram utilizadas fora do circulo de pessoas que as escreveram, @lesmo assim ainda sobrarm muitas linguagens que são do conhecimento geral dos utilizadores de computadores, ainda que só de nome. Existem assim linguagens que são mais indicados para determinados tipos de problemas, embora à partida se possa, em princípio, utilizar qualquer linguagem para programar, deve-se procurar utilizar uma linguagem que não crie dificuldades excessivas na programara dn tarefas simpiesque não levantem dificuldades Esta abordagem resolve muitos problemas e reduz os riscos de erros a um nível aceitável, embora, geralmente, não nos garanta a eliminação total dos erros. De um modo geral enquanto não se conseguir demosntrar logicamente um algoritmo nada nos garante que ele não possa falhar em determinada situação. Desta exposição pretende-se fazer realçar que a programação não é um assunto para ser estudado de ânimo leve sob pena de se correrem muitos riscos nos resultados que obtêm.

Concluindo, o computador é de facto uma máquina bastante poderosa, mas não é necessariamente uma ferramenta útil. Poderá sê-]o em áreas nas quais a sua utilização seja objecto de estudo prévio cuidado, Haverá áreas onde o computador não pode chegar, como por exemplo no processo da criação científica. Outras áreas há em que a sua capacidade de trabalhar grandes quantidades de informação a grandes velocidades são de extrema importância. Em qualquer dos casos há que não sobrevalorizar a sua importância na vida de todos nós.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
voltar frente
[ Início do Número 9] [ Menu Principal ]