347 pág.

Pré-visualização | Página 6 de 50
Em Perl: for ($i=1; $i<=10; $i++) { print $i; } 2. A LINGUAGEM DE PROGRAMAÇÃO C A filosofia básica da linguagem C é que os programadores devem estar cientes do que estão fazendo, ou seja, supõe-se que eles saibam o que estão mandando o computador fazer, e explicitem completamente as suas instruções. Assim, ela alia a elegância e a flexibilidade das linguagens de alto nível (suporte ao conceito de tipo de dados, por exemplo) com o poderio das linguagens de baixo nível (manipulação de bits, bytes e endereços). O C é uma linguagem de programação de finalidade geral, utilizada no desenvolvimento de diversos tipos de aplicação, como processadores de texto, sistemas operacionais, sistemas de comunicação, programas para solução de problemas de engenharia, física, química e outras ciências, etc. O código-fonte de um programa C pode ser escrito em qualquer editor de texto que seja capaz de gerar arquivos em código ASCII (sem formatação). Após a implementação, o programa-fonte (um ou mais arquivos-fonte) é submetido aos processos de compilação e linkedição para gerar o programa executável (com extensão “exe”). Durante o processo de compilação, cada arquivo-fonte é compilado separadamente, produzindo um arquivo de código-objeto com a extensão “obj”. Estes arquivos-objeto contêm instruções em linguagem de máquina (códigos binários) entendidas somente pelos microprocessadores. Na linkedição, todos os arquivos-objetos pertencentes ao projeto, bem como as bibliotecas declaradas nos códigos-fonte são processadas em conjunto, visando a produção do arquivo executável correspondente. Normalmente, tanto o arquivo-objeto quanto o arquivo executável possuem o mesmo nome do arquivo-fonte. Entretanto, quando desejado, o usuário poderá definir diferentes nomes para cada tipo de arquivo. A Linguagem de Programação C pode ser descrita como: 14 Imperativa: o programa descreve uma sequencia lógica de passos que devem ser executados para resolver o problema. Em oposição ao paradigma declarativo que se expressa o que se espera obter e não os passos para se chegar nesse objetivo. Procedural: o programa é estruturado usado procedimentos, no caso do C, o nome é funções. Alto nível (com acesso a baixo nível): uma linguagem com um nível de abstração relativamente elevado, longe do código de máquina e mais próximo à linguagem humana. Compilada: o código fonte em texto puro é traduzido, ou seja compilado para uma linguagem de máquina gerando um arquivo executável. Multiplataforma: praticamente para todas as plataformas foi implementado pelo menos um compilador C. Podemos também usar o compilador de uma plataforma e gerar executáveis de outras plataformas ( “cross compiler”). Tipo de dado estático: Todos os objetos em C tem um tipo definido seja uma variável, literal, função, etc. Esse tipo não é alterado durante a existencial do objeto. 2.1. CARACTERÍSTICAS DA LINGUAGEM DE PROGRAMAÇÃO C A linguagem C possui algumas características básicas: Alta portabilidade inerente da padronização ANSI, ou seja, é possível tomar um código- fonte escrito para uma máquina, compilá-lo e rodá-lo em outra com pouca ou nenhuma alteração; Gera programas formados basicamente por funções, o que facilita a modularização e a passagem de parâmetros entre os módulos; Inicia a execução a partir da função main(), necessária em todos os programas; Uso de chaves ({ }) para agrupar comandos pertencentes a uma estrutura lógica (estruturas de decisão e repetição, por exemplo) ou a uma função; Uso do ponto e vírgula (;) ao final de cada comando; É “case sensitive”, ou seja, o compilador difere maiúsculas de minúsculas. Assim, se declarar uma variável de nome idade, esta será diferente de Idade, IDADE, etc. Além disso, todos os comandos da linguagem devem ser escritos em minúsculo. 2.2. COMPILADORES A maneira de se comunicar com um computador chama-se programa e a única linguagem que o computador compreende é a linguagem de máquina. Portanto, todos os programas que se comunicam com a máquina deve, estar em linguagem de máquina. O problema é que não conseguimos programar em linguagem de máquina. O que fazemos é escrever programas em linguagens de alto nível e depois traduzir tais programas para a linguagem de máquina. Os programas que fazem essa tradução são chamados de tradutores. 15 O computador deve converter os comandos dados em linguagem de alto nível para linguagem de máquina (códigos binários). Esta tarefa de conversão é feita por um programa especial de computador, isto é, um programa que recebe as instruções em linguagem de alto nível e dá como saída outro programa constituído de instruções binárias. Ao programa original, em linguagem de alto nível, dá-se o nome de Programa Fonte e ao resultado, em linguagem de máquina, de Programa Objeto. Existem dois métodos básicos de abordagem na tradução de linguagem de alto nível para linguagem de máquina: interpretadores e compiladores. No primeiro método, o programa tradutor recebe a primeira instrução do programa fonte, confere para ver se está escrita corretamente, converte-a em linguagem de máquina e então ordena ao computador que execute esta instrução. Depois repete o processo para a segunda instrução, e assim sucessivamente, até a última instrução do programa fonte. Quando a segunda instrução é trabalhada, a primeira é perdida, isto é, apenas uma instrução fica na memória em cada instante. Se este programa fonte for executado uma segunda vez, novamente haverá uma nova tradução, comando por comando, pois os comandos em linguagem de máquina não ficam armazenados para futuras execuções. Neste método, o programa tradutor recebe o nome de INTERPRETADOR. No segundo método, o programa tradutor lê a primeira instrução do programa fonte, faz uma consistência de sua sintaxe e, se não houver erros, converte-a para linguagem de máquina; segue para a próxima instrução, repetindo o processo até que a última instrução seja atingida ou a consistência aponte algum erro. Neste método, o programa tradutor recebe o nome de COMPILADOR. Se não houver erros, o compilador cria um programa em disco com a extensão .obj, contendo as instruções já traduzidas. Este programa não pode ser executado até que sejam agregadas a ele as funções em linguagem de máquina que foram utilizadas no programa e estão em arquivos de bibliotecas. Este trabalho é feito por um programa chamado linkeditor que. Além de juntar as funções necessária ao programa .obj, cria um produto final em disco com a extensão .exe, o qual pode ser executado diretamente do sistema operacional. Um compilador não criará um programa em linguagem de máquina antes que esteja absolutamente livre de erros. Neste segundo processo, a execução fica mais rápida em relação ao primeiro, pois se economiza o tempo de retradução de cada instrução a cada nova execução. Entretanto, a cada modificação introduzida no programa fonte é necessária uma nova tradução completa para obter um novo programa objeto, o que torna o processo mais dificultoso na fase de desenvolvimento, quando muitas modificações são feitas. Além disso, geralmente, o compilador exige mais memória que o interpretador. 2.3. COMO CRIAR UM PROGRAMA EXECUTÁVEL Para se criar um programa executável, deve-se seguir os passos abaixo: 16 Digitar seu programa com o auxílio de um processador de textos no modo não documento e gravá-lo em disco, dando a ele um nome com a extensão .c – o programa criado é chamado de fonte. Compilar o código fonte seguindo as instruções do seu compilador, o que criará um programa com a extensão .obj em disco – o programa gerado é chamado de objeto. Linkeditar o objeto seguindo as instruções