A maior rede de estudos do Brasil

Grátis
347 pág.
LINGUAGEM C

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