Carlos Humes Jr.
Dept° Matemática Aplicada – IME – USP
Diretor de Ensino – ADP SYSTEMS

     1 – Introdução

 Poucas palavras passaram tão rapidamente da linguagem acadêmica ou empresarial para o dia-a-dia do cidadão comum quanto o termo computador. A velocidade desse processo de “popularização” é uma das razões pelas quais a palavra computador é freqüentemente utilizada com um significado errado e até com uma conotação mítica.

O caráter mítico é reforçado pela própria evolução tecnológica, já que as pessoas podem ter hoje, em sua casa, a preços razoáveis, o poder computacional que há 20 anos atrás era um privilégio das grandes empresas ou institutos.

Além disso, a competição pelo mercado consumidor leva algumas empresas de computação a empregarem frases enganosas como: “O computador é ficção científica tornada realidade”. Frases como esta levam o leigo a incorporar uma idéia falsa de computador, pois o sistema educacional ainda não teve tempo de se adaptar à nova realidade para analisa-la e explicá-la.

Paralelamente, cresce a procura de informações sobre os computadores (por sua importância econômica) como atestam os seguintes dados: o faturamento das empresas de informática no Brasil passou de 800 milhões de dólares em 1979 para 1600 milhões em 1982. Em 1983, a indústria de computadores no Brasil apresentou um crescimento anual de 37% enquanto as demais atividades industriais registravam um declínio de 8%.

Fator gerador de interesse bem mais visível e claro, é a absorção de mão-de-obra na área de informática. Abrindo-se as páginas de anúncios classificados dos jornais de domingo pode-se ter uma idéia da busca elevada de profissionais nesta área.

O modo de difundir informações sobre esse tipo de equipamento não é uniforme pois não há consenso a respeito da melhor abordagem. Na realidade, a própria abordagem define  implicitamente o objetivo subjacente à informação: desde promoção até rejeição da informática baseada em um temor gratuito.

Em nossa visão, a deificação do computador leva à necessidade de abordagem desmistificadora que dê realce às potencialidades e limitações do computador. Ao escolher o termo “equipamento” pretendemos justamente dar um enfoque desmistificador ao computador.

 

     2 – Descrição do equipamento

Para entender o que é um computador vamos analisar suas partes componentes e procurar descrever suas funções.

a)  Unidades de entrada

Para processar dados, a primeira necessidade é saber que dados serão processados, e, portanto, como eles devem ser lidos pela máquina.

As unidades que têm como função esta alimentação de dados são denominadas unidades de entrada.

A mais convencional (e a caminho do desuso) das formas de entrada de dados é o cartão perfurado. Um exemplo típico dessa forma de entrada é o cartão de apostas da loteria esportiva. Nesta aplicação bastante simples, o universo das possíveis entradas é: coluna um coluna do meio, coluna dois. No caso de um universo de entradas mais amplo, só há necessidade de códigos e espaço para perfurar as informações.

O esquema clássico é o seguinte: utilizando uma máquina dotada de um teclado é “datilografada” a informação, perfurando cartões: estes são postos em uma máquina leitora de cartões perfurados que transforma em impulsos elétricos a informação perfurada nos cartões.

Por que tal procedimento? Não seria mais simples datilografar as informações diretamente ao computador? A razão deste procedimento é que a velocidade de digitação é da ordem de 200 cartões por hora, cada um deles contendo até 80 caracteres de informação por cartão. Em contraposição, uma leitora de cartões mediana tem uma velocidade de leitura de 1100 cartões por minuto.

Na medida em que o computador de grande porte de hoje (ou aqueles das origens da Computação) é um recurso caro, que não pode ficar parado à espera da entrada de dados, é bem mais razoável entrar com as informações em lotes que podem ser lidos rapidamente.

 

b)  Um pouco de história

Aliás, um dos marcos da história do processamento de dados está ligado à utilização de cartões perfurados. Para apurar o censo americano em 1880 foram necessários sete anos. Por extrapolação concluiu-se que o censo de 1890 só teria sua apuração completa após a realização do censo seguinte, em 1900. Um funcionário do censo americano desenvolveu um dispositivo que codificava a informação populacional em cartões perfurados que eram então lidos por outro dispositivo mecânico orientado para gerar informações estatísticas. O censo de 1890 pode então ser apurado em dois anos e meio e esse funcionário entrou para a história. Seu nome, Herman Hollerith, popularizou-se a ponto de ser usual em Português nos referirmos ao envelope de pagamento como sendo o “hollerith”.

Note-se que o processamento destes dados era feito mecanicamente. Um dos primeiros sistemas, de que temos notícia, deste processamento mecânico é uma máquina construída em 1642 por Blaise Pascal, usando roldanas e engrenagens para simular somas. Esta máquina foi aperfeiçoada em 1671, por Gottfried Leibnitz, levando a um protótipo bastante problemático realizado em 1694. Várias pessoas contribuíram para sucessivos desenvolvimentos: C. X. Thomas (1820), Joseph Marie Jacquard (1801), Bouchon, Falcon e Jacques (1725 a 1745), J. Muller (1786), Charles Babbage (1802 a 1822), Scheutz (1854) ... De todos estes projetos o mais marcante é o da “máquina analítica” de Charles Babbage em 1833.

Este padrão de processamento mecânico e/ou manual prosseguiu até a 2a. Guerra Mundial, quando foram introduzidas máquinas de calcular automáticas controladas por painéis de fios, botões, chaves, etc ... e que se tornaram eletromecânicas. Isto é, as funções eram controladas por relês eletromagnéticos, tais como as bobinas de uma das velhas campainhas, que, quando da passagem de uma corrente elétrica, forçam o deslocamento de uma chapa de metal causando o estridente ruído.

A utilização de máquinas que funcionam baseadas em dois estados (contato ou não, contato, ligada ou desligada) está ligada ao desenvolvimento em 1854 por George Boole, da álgebra binária.

O passo seguinte da evolução tecnológica (1946/1949) foi a utilização de válvulas eletrônicas para realizar eletricamente as funções antes eletromecânicas. Estes dispositivos caracterizam a chamada primeira geração dos computadores eletrônicos digitais.

A partir desse momento a tendência foi procurar substituir as partes eletromecânicas ou mecânicas por partes elétricas de grau de sofisticação cada vez maior.

 

c)  Memória auxiliar

O procedimento de entrada de dados através de cartões perfurados ou de fitas de papel perfuradas (tais como as de máquinas de telex) também foi afetado pelo progresso tecnológico. A partir do sucesso das fitas magnéticas para áudio (gravador de rolo), desenvolvidas em 1946, os projetistas de sistemas de computação desenvolveram a idéia do uso de fitas magnéticas para armazenamento intermediário de informação.

Atualmente é bastante comum que a digitação de dados gere fitas magnetizadas que graças a códigos padrões podem ser lidas como entrada do sistema de computação, substituindo com várias vantagens o cartão perfurado. Além de questões como volume, segurança, as fitas possuem a vantagem da velocidade e a de que podem ser utilizadas tanto como meio de entrada de dados como também de saída. Por não poderem ser lidas por seres humanos são “memórias temporárias”, pois, por exemplo, para serem lidas por nós sua informação tem que ser impressa ou apresentada em tubo de televisão (tubo de raios catódicos), como aqueles que aparecem nos comerciais de computadores na televisão.

A velocidade de leitura de fitas magnéticas chega a centenas de milhares de caracteres por segundo, bastante conveniente para aplicações que manipulam grandes volumes de dados. Entretanto, o fato de que o acesso a informações na fita tem que ser feito seqüencialmente (uma informação após a outra, na ordem de gravação), a eficiência de busca e atualização de dados pode ser afetada, conforme o tipo de processamento dos dados contidos na fita.

Para resolver-se estas limitações foram usadas novamente idéias provindas de áudio. Em uma fita, para chegarmos à música desejada temos que percorre-la, mas em um LP, basta colocar a cabeça de “leitura” na faixa desejada. Por esta analogia é fácil de compreender os discos magnéticos, onde a informação é gravada em superfícies magnéticas, em um disco cujas “faixas” podem ser endereçadas automaticamente, buscando a informação de forma não seqüencial.

Variantes desta idéia em termos de forma (tambores ao invés de disco) e de tecnologia (discos semi-flexíveis ou “diskettes”, tecnologia Winchester, uma cabeça de leitura fixa para “faixa” ou cabeça móvel, etc.) existem no mercado e sua escolha é parte do problema de projeto do equipamento de computação a ser adotado.

Considerando as velocidades que podem ser atingidas em termos desta transmissão de dados, fica claro que há a necessidade de armazená-los em algum tipo de equipamento associado de forma muito efetiva ao subsistema que fará o processamento.

 

d)  Memória

A parte responsável pelo armazenamento da informação é a memória principal ou, mais simplesmente, a memória. A forma “clássica” de memória é a de pequenos anéis de material magnetizável, que por sua polarização induzida eletricamente representam zeros e uns, tornando possível o armazenamento de dados em forma binária. Hoje, este sistema pode ser replicado por circuitos utilizando tecnologia de alta compactação, baseada em semi-condutores. Além destas formas, vários outros métodos utilizando tecnologia sempre mutante podem ser usados.

 

e)  Um pouco de história

Este alto grau de progresso tecnológico é que permitiu a grande popularização de computadores. No final da década de 40, vários cientistas ligados à gênese dos primeiros computadores acreditaram que só alguns poucos computadores seriam produzidos, devido ao seu custo e enorme volume. Realmente, no início da década de 50 os computadores de primeira geração, baseados em válvulas como componentes básicos, eram passíveis de tais críticas.

Estes problemas, principalmente o de grande dissipação de calor (quem já encostou a mão em um rádio ou amplificador com pouquíssimas válvulas sabe o que é isso), eram também comuns às centrais de chaveamento telefônico. A Bell Laboratories, motivada pelo problema telefônico, desenvolveu os transistores. Esta inovação tecnológica foi agregada à computação, levando à produção dos computadores de segunda geração, já de enorme difusão em empresas, universidades, institutos de pesquisa, etc ....

Desde então, a indústria de computação passou a investir maciçamente e liderar as técnicas da assim chamada Física do Estado Sólido e, em 1963/65, surgiu a chamada terceira geração de computadores.

Nos últimos anos, o progresso tecnológico tem sido tão grande que se discute se já não estamos em uma quarta geração de computadores, pois hoje com uma tecnologia que não é a mais sofisticada disponível, são produzidos os chamados “microcomputadores” (por exemplo, para uso pessoal) de preço baixíssimo e de poder igual a alguns dos grandes computadores do início da terceira geração.

 

f)  Unidade central de processamento

A unidade central de processamento (UCP) é a parte do computador que exerce o controle e a realização das operações, basicamente, de aritmética binária.

A UCP é, em excência, um conjunto de circuitos lógicos, isto é, circuitos que realizam operações do tipo “e” e “ou” equivalentes a multiplicações e adições “booleanas”. Estes circuitos usualmente são os mais avançados tecnologicamente de cada computador.

 

g)  Unidade de saída

Estas unidades são as partes do computador capazes de informar a respeito dos dados processados, conforme o interesse do usuário.

As saídas podem ser por impressoras (que fornecem listagens), por mesa de desenho controladas eletricamente (plotters), por perfuração de cartões, por meios magnéticos, etc.

 

h)  O equipamento

A UCP, memória, entrada, memória auxiliar e as unidades de saída formam o equipamento elétrico e mecânico que é um computador. Esta “ferragem” (em inglês: hardware) constitui o computador que é basicamente uma máquina de calcular baseada em aritmética binária, com sofisticados equipamentos de entrada, saída e armazenamento de dados.

 

 

     3 – Programas e modelos

Este “hardware” seria de pouquíssima utilidade, se não fosse um conceito simples que é o de programa. A idéia básica é tratar a seqüência de instruções a serem realizadas como um tipo particular de dados.

Esta idéia é o conceito que tornou os computadores versáteis. O programa é uma adaptação bastante versátil da idéia do painel controlando as operações.

Na realidade, hoje ao fazermos um programa de computador estamos usando uma série de programas.

Ao definirmos, através de um conjunto de instruções escritas em uma dada linguagem, o que o computador deverá fazer, estamos criando uma entrada para um programa tradutor (compilador). Este programa tradutor lê as instruções e, tipicamente, gera uma forma intermediária de código. A este código são agregados programas prontos, que controlam as correlações das instruções com as necessidades de entrada e saída, e geram, através de outros programas, uma, forma executável de instruções.

Um programa base, chamado sistema operacional, controla estas funções e determina a execução do programa.

Esta é uma visão aproximada do funcionamento que para ser mais bem explicitada, deve ser objeto de um estudo mais detalhado.

Os sistemas operacionais, compiladores e outros programas úteis afins são a principal razão da popularização do uso de computação, pois criam a ilusão de um equipamento versátil de fácil uso (ilusão esta parcialmente correta). Este universo de programas é chamado de “software” (em contraposição a “hardware” para equipamentos).

Mas, o universo das possibilidades de computação é restrito àquilo que pode ser feito baseado na aritmética binária e nos sucessivos passos de “modelarmos” o problema.

Modelagem é o conceito básico de computação e, a menos da ênfase, é um conceito bastante conhecido por nós.

Um problema que todos nós já resolvemos, é o de dividir uma dúzia de bolas de gude entre dois meninos, sendo que João recebe o dobro de bolas que Antonio. Ao fazermos x = bolas para Antonio, y = bolas para João,  x + y = 12 e y = 2x,  fizemos um modelo matemático do problema. Dentro deste mesmo espírito, a Física Clássica e a Teoria da Relatividade são dois modelos da realidade física.

Já que o computador digital, em termos de processamento, não é mais que uma justamente glorificada máquina de calcular, a todo procedimento computacional está associado um modelo matemático. Mais ainda, todo procedimento computacional é um modelo matemático restrito às regras permitidas pelo programa (compilador), que transformará o código aceitável em uma seqüência de operações. Portanto, é necessária uma compreensão deste processo e de suas limitações, para que saibamos exatamente o que esperar de altissonantes promessas de aplicação de Computação.

 

 

     4 – Profissões em processamento de dado

Definido este contexto, podemos apresentar brevemente uma caracterização aproximada das principais profissões existentes associadas ao mercado de Computação.

 

a)  O analista

O profissional cuja função é entender o problema existente e fazer a modelagem do problema, encontrar o método de solução e especificar como transportar esta solução para o plano da Computação é o analista de sistemas.

Este termo abrangente tem origens no início da Computação, quando a tarefa mais usual era a chamada “mecanização” de processos. Neste caso, o analista decompunha um processo (por exemplo, emissão de faturas) em suas partes e casos, e assim gerava uma solução modular. Daí vem a origem do uso do termo analista: o que faz a decomposição (análise).

Este perfil tem se alterado. As principais funções do analista, hoje, são a síntese de procedimentos e soluções, aliada à capacidade de diagnóstico das questões envolvidas, junto a um não especialista em Computação. Este perfil caracteriza o chamado analista de aplicações ou analista de informações.

Apesar de ainda existirem profissionais que exercem esta função formados na prática, a tendência é que formação universitária seja um pré-requisito. Para trabalhos mais sofisticados, por exemplo, em projetos de grande porte, mestrado e doutorado têm se tornado qualificações usuais.

Ao mesmo tempo, a complexidade crescente do projeto e uso de programas (engenharia de “software”) está levando à existência de uma grande demanda de especialistas nesse campo da Computação. O sucesso dos cursos de bacharelado em Ciência de Computação (USP, UNICAMP...) está ligado, principalmente a esta área. Por sua característica mais específica, este ramo conta ainda com um bom número de profissionais sem grau acadêmico. Estes especialistas em sistemas de Computação são chamados ora de analistas de “software”, ora de programadores de sistemas.

 

b)  O programador

A tarefa de transformar especificações semi-prontas em códigos eficientes para programas de computadores é de competência do programador ou codificador. Este trabalho, em nível de eficiência, é bastante árduo e o Brasil tem estatísticas de produtividade bastante baixas em relação ao centros mais desenvolvidos. O grande problema desta área é a questão de lógica e de metodologia envolvidas. O pré-requisito usual de programação é o segundo ciclo.

 

c)  O operador

Uma tarefa de crescente importância é a de operação (hoje chamada também de “schedulling”), pois a complexidade dos sistemas cresceram demais. Hoje admite-se acesso aparentemente simultâneo de vários programas, interligação de computadores a locais remotos, interligação entre “software” e “hardware” e tantos outros métodos para melhor eficiência, que a operação eficiente é uma carreira cujo nível de entrada é o grau médio. O operador é o gerente de produção da instalação de processamento de dados.

 

     5 – Nota final

Além destas profissões, existem várias outras relacionadas à Computação. Aliás na medida em que a Computação interage cada vez mais com vários campos de atividade, é difícil saber se a Computação não será um pré-requisito para a maioria das atividades.

Um ponto a se pensar é a analogia entre imprensa e Computação feita por Knuth (da Universidade de Stanford): “Antes da imprensa e sua divulgação, havia profissionais específicos da comunicação escrita: os escribas. Atualmente, nos primórdios da Computação, existe a profissão de programador. Hoje somos todos escribas, até quando não seremos todos programadores”.

___________
NOTA: este artigo baseia nas apostilas do módulo básico dos cursos de Computação da ADP SYSTEMS.