Linguagem C - José Frazão Website

Propaganda
Linguagem C
Linguagem C
José Frazão
ÍNDICE
Página
1. INTRODUÇÃO
3
2. LINGUAGEM C
4
2.1. Objectivos e características da Linguagem C
4
2.2. Aplicações escritas em C
7
2.3. Estrutura de um Programa em Linguagem C
7
2.4. Código Fonte
8
2.5. Código Maquina
9
2.6. Compiladores e Interpretadores
9
2.6.1. Diferenças existentes entre compiladores e interpretadores
10
3. CONCLUSÃO
11
4. REFERENCIAS BLIBLIOGRÁFICAS
12
Página 2/13
Linguagem C
José Frazão
1. INTRODUÇÃO
O objectivo deste trabalho é conhecer a evolução da Linguagem C e a sua finalidade.
Neste trabalho abordo também a definição de código máquina e código de fonte,
compiladores e interpretadores, qual a sua função e suas diferenças.
Página 3/13
Linguagem C
José Frazão
2. LINGUAGEM C
A Linguagem C nasceu em 1972 nas empresas Bell Telephone Loboratories, embora
tenha sido conhecida ainda na 3ª Geração como FORTRAN, o PASCAL ou o COBOL. O seu
objectivo e funcionalidade era permitir a escrita num sistema operativo (o Unix), utilizando
linguagem de relativo de alto nível, evitando o recurso ao Assembly.
Devido às suas capacidades e divulgação no sistema Unix pelas universidades dos
Estados Unidos, a Linguagem C saiu dos laboratórios Bell, dispersou-se e tornou-se
conhecida por todos os tipos de programadores, independente dos projectos em comum.
A dispersão leva a que diferentes organizações incrementassem e utilizassem varias
versões da Linguagem C, criando então alguns problemas nas portabilidades e não só. Devido
ao facto de a Linguagem C se tornar tão popular entre programadores e organizações, a
American National Standards Instituite (ANSI) nasceu em 1983 um comité para definir um
standard da Linguagem C, sendo o mesmo que visa um funcionamento semelhante para todos
os compiladores da linguagem, com especificações muito precisas sobre aquilo que deve ou
não fazer, sem limitações, definições, etc.
2.1.Objectivos e características da Linguagem C
A Linguagem C surgiu com o objectivo principal de facilitar a criação de programas
extensos com um menor número de erros apelando ao paradigma da programação algorítmica,
sobrecarregando menos o autor do compilador, visto as características desta linguagem serem
complicadas.
A linguagem C possui as seguintes características (Wikipédia):

“Uma linguagem nuclear extremamente simples, com funcionalidades não-essenciais,
tais como funções matemáticas ou manuseamento de ficheiros (arquivos), fornecida
por um conjunto de bibliotecas de rotinas padronizada;

A focalização no paradigma de programação procedimental;

Um sistema de tipos simples que evita várias operações que não fazem sentido

Uso de uma linguagem de pré-processamento, o pré-processador de C, para tarefas
tais como a definição de macros e a inclusão de múltiplos ficheiros de código fonte;

Ponteiros dão maior flexibilidade à linguagem;

Acesso de baixo-nível, através de inclusões de código Assembly no meio do programa
C;
Página 4/13
Linguagem C

José Frazão
Parâmetros que são sempre passados por valor para as funções e nunca por
referência (É possível simular a passagem por referência com o uso de ponteiros);

Definição do alcance lexical de variáveis;

Estruturas de variáveis, (structs), que permitem que dados relacionados sejam
combinados e manipulados como um todo.”
Apesar das características atrás descritas, faltam à Linguagem C outras que se podem
encontrar noutras linguagens, como por exemplo (Wikipédia):

“Segurança de tipo;

Colector de lixo (mais comum em linguagens interpretadas);

Vectores que crescem automaticamente;

Classes ou objectos com comportamento;

Closures;

Funções aninhadas;

Programação genérica;

Sobrecarga de operadores;

Meta-programação;

Apoio nativo de multithreading e comunicação por rede.”
Visto existir várias linguagens de programação disponíveis no mercado, cada uma delas
tinha de possuir pontos onde se especializavam mais para conseguir cativar o interesse da
maioria dos programadores.
Na maioria das linguagens os seus objectivos a atingir são:
 COBOL – Processamento de Registos
 PASCAL – Ensino de Técnicas de Programação
 FORTRAN – Cálculo Científico
 LISP e PROLOG – Vocacionam para áreas de Inteligência Artificial
Na Linguagem C não há nenhuma área de destino em particular, habitualmente se
denomina por General Purpose, esta é uma das vantagens, pois tem a capacidade de adaptar
qualquer desenvolvimento num projecto, como sistemas operativos, interfaces gráficas,
processamento de registos, etc.
A Linguagem C é utilizada também para escrever compiladores de outras linguagens,
é uma linguagem extraordinariamente robusta e maleável.
Página 5/13
Linguagem C

José Frazão
Rapidez – consegue atingir performance semelhante á do Assembly, usando instruções
de alto nível, isto é instruções semelhantes há linguagem PASCAL ou COBOL, mesmo para
aceder a mecanismos de mais baixo nível, como o de endereçamento ou manipulação de Bits.

Simples – de sintaxe extremamente simples e o número de palavras reservadas, tipos de
dados básicos e operadores é reduzido, fazendo diminuir a quantidade de tempo e esforço
necessário à aprendizagem da linguagem.

Portável – existente um standard (ANSI) que define características de qualquer
compilado, deste modo o código escrito numa máquina, pode ser então transportado para
outra máquina e compilado sem qualquer alteração, (ou com um numero reduzido).

Popular – é conhecida internacionalmente e utilizada, esta porem muito bem
documentada em livros, revistas de especialidade, manuais, etc. Existe compiladores para
qualquer tipo de arquitecturas e computadores.

Modular – permite o desenvolvimento modular em aplicações, facilitando a separação de
projectos em módulos distintos, independentes, recorrendo à utilização de funções específicas
de cada módulo.

Alto Nível – há a possibilidade de manipular a memória directamente, utilizando o
endereço de qualquer objecto (seja variável ou função), manipulando directamente a memória
sem ter qualquer restrição o que aumenta a flexibilidade da linguagem.

Livrarias muito poderosas – tem um número reduzido de palavras-chave, o que indica
que as suas capacidades são limitadas na realidade. A maior parte das funcionalidades da
linguagem são-lhe adicionadas pela sua utilização de funções existentes em livrarias
adicionais e realizam todo o tipo de tarefas, deste a escrita no ecrã ate ao seu processamento
de strings, etc.

Macros – Utilizada no desenvolvimento de aplicações, reduzindo assim a necessidade de
escrita de funções distintas na realização do mesmo processamento, em todos os tipos de
dados. As Macros permitem aumentar a velocidade de execução sem este ter que aumentar a
complexidade de escrita do código.

Focus – Permite ao programador a escrita do código, como pretender, no qual o
programa pode ser escrito numa só linha e dividido em inúmeras linhas. Apenas tem de se
preocupar com objectivo e a correcção da aplicação que está a desenvolver, do modo a que no
final o resultado seja o desejado, n é necessário formatar o código a partir da coluna X e os
dados a partir da coluna Y como acontece com outras linguagens.
Página 6/13
Linguagem C

José Frazão
Evolução –a evolução das linguagens, fez que também o C evoluísse no sentido da
Linguagens Orientadas por Objectos, dando origem a nova Linguagem C++ qual se mantém
a sintaxe da Linguagem C, e permite um conjunto adicional de características
(Encapsulamento, Hereditariedade, Polimorfismo, Overloading, etc.). Actualmente a nova
linguagem – JAVA – apresentou-se com base alargada de trabalho para programadores.
Também esta linguagem se baseia na C e C++. Foram algumas razões indicadas para aprender
a programar na Linguagem C.
2.2 Aplicações escritas em C
A Linguagem C é a mais utilizada pelos programadores devido a permitir a escrita de
programas como Assembler, BASIC e COBOL com uma grande eficácia, podemos constatar
esse facto nestes seguintes softwares:

Sistema Operativo: UNIX

Base de Dados: dBase III, IV e Access

Folhas de cálculo: 1,2,3 e Exel

Aplicações Gráficas
2.3 Estrutura de um Programa em Linguagem C
Um Programa em Linguagem C é constituído por uma ou varias funções, assim cada
função contém um nome único delimitado por um par de chavetas “{}” possuindo um
conjunto de expressões, comandos de controlo e chamadas a outras funções.
O Programa só começa a ser executado depois de colocarmos a função main no inicio do
programa. A função printf mostra a mensagem no ecrã. A função system executa o programa
ou seja uma janela do DOS é aberta e quando termina o programa fecha automaticamente mas
possui como opção system(“PAUSE”) para parar o programa e iniciar se quando carrega-se
em qualquer tecla. O #include tem como função incluir funções da biblioteca necessária para
o programa, são esses:

stdio.h (Funções de entrada e saída)

string.h (Funções de tratamento de strings)

math.h (Funções matemáticas)

ctype.h ( Funções de tratamento de caracteres)

stdlib.h ( Funções de uso genérico)
Página 7/13
Linguagem C
José Frazão
/* meu primeiro programa em linguagem C*/
#include <stdio.h>
void main ()
{
printf ("Bem vindo a aula de programação em C!!!\n");
getchar(); /* Aguarda pressionar Enter */
}
Fig.1.Exemplo de uma Estrutura
2.4. Código Fonte
“O código fonte e um conjunto de palavra ou símbolos escritos de uma forma ordenada,
contendo instruções em uma das linguagens de programação existentes de maneira lógica.”
(Wikipédia).
Inicialmente
um
programador compõe o programa em
uma certa linguagem (C++ ou Visual
Basic), o programador de sistema
pode alterar a forma como o programa
funciona,
adicionar
recursos
e
remover outros. O código fonte (Fig.
2) permite apenas que o programador
consiga expor o programa de uma
forma nítida aos humanos, para que o
consiga
definir
o
programa
executável, é necessário que o código
fonte seja traduzido para o código de
máquina do processador que se ajuste
á arquitectura do sistema.
Fig.2- Exemplo de código fonte
Página 8/13
Linguagem C
José Frazão
2.5. Código Máquina
Resultado final da compilação de uma linguagem de alto nível, como o C, é apenas
composto por 0 e 1, carregadas e executadas por um microprocessador. O código de máquina,
também conhecido como linguagem máquina, é a única linguagem que os computadores
compreendem, todas as outras linguagens de programação representam maneiras de se
estruturar os idiomas humanos de modo a que uma pessoa possa fazer os computadores
executarem tarefas específicas.
Geralmente os programas de computador não são criados em linguagem máquina, pois
devem ser traduzidos por compiladores para serem executados directamente pelo computador,
actualmente existe a opção de não executa-los de forma directa mas sim por meio de um
interpretador, assim corre logo em código máquina e previamente compilado.
2.6. Compiladores e interpretadores
Os compiladores e interpretadores são programas sofisticados que operam sobre o
código fonte do programa.
O interpretador lê o código fonte do programa uma linha de cada vez e executa as
instruções compreendidas nessa linha (Fig. 3), o compilador lê o programa inteiro e converte
em código maquina, que consiste em uma tradução do código fonte de maneira a ser
directamente executada pelo computador (Fig. 4).
Fig. 3 - Interpretador
Fig. 4 - Compilador
Página 9/13
Linguagem C

José Frazão
Programa fonte – é o programa original, escrito numa qualquer linguagem de
programação.

Programa objecto – é o programa gerado após o programa fonte ter sido compilado, por
um compilador e escrito em linguagem máquina.
2.6.1.Diferenças existentes entre compiladores e interpretadores
Os programas compilados são realizados com mais rapidez que os interpretadores, mas
o processo de compilação é muito mais lenta. Por outro lado é compensado pela economia de
tempo que é feito durante a utilização do programa, mas á uma situação de excepção, sendo
essa quando o programa é curto ou seja menos de 50 linhas.
Então os compiladores apresentam se com a vantagem de ser mais rápidos na
execução do programa, ter uma estrutura de dados mais completas e permitir uma melhor
optimização de código fonte, e como desvantagens o facto de ter várias etapas de tradução, o
processo para corrigir erros é mais demorado e necessita de mais memória visto no final a
programação é maior. Enquanto os interpretadores consomem menos memoria e tem o
resultado imediato do programa, mas a apresenta se com uma execução de programa mais
lenta, tem uma estrutura de dados muito simples e necessita de fornecer o programa fonte ao
utilizador.
Página 10/13
Linguagem C
José Frazão
3. CONCLUSÃO
A Linguagem C é considerada uma linguagem de nível médio, visto oferecer elementos
de uma linguagem de alto nível e recursos típicos de Assembler. Por isso, a Linguagem C é
muito utilizada em programação de sistemas (compiladores, sistemas operativos), pois
permite a manipulação de bits, bytes e endereços com que o computador funciona.
O Código Fonte tem como objectivo fazer com que o programador descreva o
programa de forma nítida as pessoas. Para que se consiga executar um programa é necessário
traduzir o Código Fonte para Código de Máquina, visto ser a única linguagem que os
computadores compreendem.
Em relação aos Compiladores e Interpretadores tem como função operarem sobre o
Código Fonte do programa.
Página 11/13
Linguagem C
José Frazão
4. REFERÊNCIAS BIBLIOGRÁFICAS
 Damas, Luís; “Linguagem C” ; 10º edição; FCA – Editora de Informática
 http://carlabknho-mundonet.blogspot.com/2009/11/codigo-fonte.htm
(Consultado
a
21/11/09)
 http://pt.wikipedia.org/wiki/C%C3%B3digo_fonte (Consultado a 21/11/09)
 http://pt.wikipedia.org/wiki/C%C3%B3digo_de_m%C3%A1quina (Consultado a 21/11/09)
 http://olga.a.freitas.googlepages.com/Unidade1-Teresa.pps (Consultado a 21/11/09)
 http://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o) (Consultado
a 21/11/09)
 http://www.scribd.com/doc/11362105/Linguagem-C-UFRPE-4-de-6
16/12/09)
Página 12/13
(Consultado
a
Download