Etapas de Processamento de um Programa
Para facilidade de visualização procura-se aqui (Figura I-9) colocar esquematicamente as etapas pelas quais um programa passa, ao ser compilado, e depois executado. Embora somente o caso do compilador propriamente dito seja esquematizado, pela própria descrição dos dois outros métodos, pode-se comparativamente desenhar seus esquemas de funcionamento.
Figura I-9. Esquema das etapas de compilação e execução de um programa
Erros
Note que os dados, como o raio das circunferências externa e interna do problema do anel, só serão lidos se houve sucesso na compilação. Caso contrário o computador devolve uma listagem do programa - "Relatório de Erros" - apontando os erros cometidos. Faz-se então a correção dos comandos errados, o que gera um novo programa fonte, e recomeça-se o processo.Os erros cometidos no programa fonte são principalmente de duas naturezas e são chamados Erros de Sintaxe ou Erros de Lógica. Pode haver também erros nos dados. Na sequência discute-se brevemente cada um deles.
ERROS DE SINTAXE
Ao receber o programa fonte do usuário, o compilador verifica se cada comando observa suas regras de sintaxe, isto é, verifica se está escrito conforme as regras da linguagem que regem a grafia daquele comando.
Por exemplo, em linguagem FORTRAN o comando
ESCREVA, "AREA DO ANEL ...:", ARANEL, "cm2"
ficará:
PRINT, "AREA DO ANEL ...:", ARANEL, "cm2"
Supondo que, por descuido ou ignorância, se tivesse escrito:
PLINT "AREA DO ANEL ...:", ARANEL, "cm2"
dois erros seriam cometidos:
Neste caso seriam acusados erros de sintaxe no momento da compilação e o computador devolveria uma lista do programa apontando os locais e a descrição dos erros cometidos. É bom notar que às vezes um erro encobre vários outros e assim, quando um é corrigido aparecem diversos não apontados na primeira compilação.
A causa do erro pode vir explanada por extenso, no relatório do próprio computador, ou pode ser informado apenas um número codificado e em manuais próprios se encontra a sua explicação.
ERRO DE DADOS
Supondo que a área do anel tivesse sido negativa, isto poderia talvez ser explicado como erro de dados, em que se forneceu primeiramente, no registro lido, o raio do círculo interno e depois o externo, contrariamente ao que esperava o programa. Óbvio que o problema poderia ser também provocado por erro de fórmula ao se dar as instruções de cálculo (ver Erro de Lógica).
ERRO DE LÓGICA
Ainda no programa do anel, se em lugar da fórmula da área do círculo se tivesse usado a do comprimento da circunferência (2*p *R) o resultado final não seria correto pois as fórmulas de cálculo estão erradas, diz-se, logicamente. Infelizmente o computador não é inteligente o suficiente (ainda ...) para detectar erros de lógica e por isto estes são os piores de ser encontrados e portanto corrigidos. Uma das ferramentas para encontrá-los mais diretamente é a chamada Tabela de Memória.
Principais Linguagens de Programação
A título ilustrativo faz-se a seguir um breve resumo de algumas linguagens de programação de uso bastante difundido.
FORTRAN (FORmula TRANslator: tradutor de fórmulas)
A linguagem Fortran foi das primeiras linguagens de alto nível desenvolvidas. Sua primeira versão ocorreu em 1957, criada pela IBM. Como seu próprio nome diz, é uma linguagem com um forte ferramental matemático embutido e, por isto, muito apropriada para problemas científicos em universidades, institutos de pesquisa, firmas de engenharia, etc.
Já há uma dezena de anos se tem profetizado sua morte iminente. Porém, como novas versões modernizadas têm surgido e já existem inúmeros sistemas com ela construídos, que demandariam muito trabalho para transformar em linguagens mais modernas, ela tem se mantido e regenerado.
É usada sobretudo em computadores grandes e médios, embora já existam versões para microcomputadores profissionais.
COBOL (Common Business Oriented Language: Linguagem comum, voltada para o comércio)
Linguagem desenvolvida em primeira versão em 1959 com filosofia de construção de modo a facilitar sua utilização na solução de problemas comerciais.
Os problemas comerciais caracterizam-se geralmente por terem grande movimento de leitura de dados e muito trabalho de impressão de resultados e relativamente poucos cálculos matemáticos. (Os problemas científicos apresentam característica oposta: lêem-se uns poucos dados, faz-se um grande processamento de cálculos com estes dados e ao final imprime-se um resultado curto, que às vezes resume-se a um número). Em uma agência bancária, por exemplo, são lidos uma enorme quantidade de entradas de numerário, deduzidas as saídas e impressos os saldos assim calculados de inúmeros correntistas. Vê-se que poucas vezes se foge das 4 operações aritméticas básicas. Para este tipo de problema o Cobol foi desenvolvido e sua instalação é encontrada nos mesmos tipos de máquinas que o Fortran: médias e grandes, de preferência.
BASIC (Beginners All-purpose Symbolic Instruction Code: Código de Instrução Simbólica de Uso Geral para Iniciantes)
Linguagem criada no início da década de 60. Tinha por objetivo inicial a criação de um instrumento didático.
Por trabalhar com interpretadores de tamanho reduzido, foi implantada em quase todos os microcomputadores, que não têm grande memória disponível.
Tem a vantagem de ser muito interativa, o que a torna interessante na fase de depuração do programa, avisando de modo claro, a cada comando incorreto, o erro cometido.
PASCAL
A Linguagem Pascal foi desenvolvida em 1971 na Universidade de Zurique, Suiça, pelo Professor Nicklaus Wirth, com modernos recursos de programação estruturada. Esta é uma técnica que, grosso modo, consiste em fazer programas modulares, em que cada módulo é composto pelas três estruturas gerais (sequência, repetição e seleção). Isto leva à maior facilidade de construção de programas e, geralmente, também a produtos de maior qualidade.
Graças à sua modernidade, o Pascal tem sido progressivamente utilizado, tanto no ensino de informática, sobretudo nas Universidades, como nas aplicações científicas e comerciais, em lugar do Fortran e do Cobol. Entretanto, devido talvez ao grande acervo de sistemas construídos naquelas linguagens e também à sua constante modernização, englobando os conceitos das linguagens estruturadas e outras modernas idéias de programação, ambas têm sobrevivido há anos, desafiando profecias de morte iminente.