Tutorial C - Parte 01 - Historia e características da linguagem de programação C
O
desenvolvimento inicial de C ocorreu no AT&T Bell Labs
entre 1969 e 1973. Não se sabe se o nome "C" foi dado
à linguagem porque muitas de suas características derivaram da
linguagem B e C é a letra conseguinte no alfabeto, ou porque
"C" é a segunda letra do nome da linguagem BCPL, da qual derivou-se a
linguagem B.
C
foi originalmente desenvolvido para a implementação do sistema Unix
(originalmente escrito em PDP-7 Assembly, por Dennis Ritchie e Ken
Thompson). Em 1973, com a adição do tipo struct, C tornou-se poderoso
o bastante para a maioria das partes do núcleo do Unix, serem
reescritas em C. Este foi um dos primeiros sistemas que foram implementados em
uma linguagem que não o Assembly, sendo exemplos anteriores os
sistemas: Multics (escrito em PL/I) e TRIPOS (escrito
em BCPL). Segundo Ritchie, o período mais criativo ocorreu
em 1972.
FIGURA 1 – Ken Thompson e Dennis Ritchie (da esquerda para direita), os criadores das linguagens B e C, respectivamente. |
C
é uma das linguagens de programação mais populares e existem poucas
arquiteturas para as quais não existem compiladores para C. C tem influenciado
muitas outras linguagens de programação. mais notavelmente C++, que
originalmente começou como uma extensão para C.
Visão geral
C
é uma linguagem imperativa e procedural, para implementação de sistemas. Seus
pontos de design foram para ele ser compilado, fornecendo acesso de baixo
nível à memória e baixos requerimentos do hardware. Também foi
desenvolvido para ser uma linguagem de alto nível, para maior reaproveitamento
do código. C foi útil para muitas aplicações que foram codificadas
originalmente em Assembly.
Essa
propriedade não foi acidental; a linguagem C foi criada com o objetivo
principal em mente: facilitar a criação de programas extensos com menos erros,
recorrendo ao paradigma da programação procedural, mas
sobrecarregando menos o autor do compilador, cujo trabalho complica-se ao
ter de realizar as características complexas da linguagem. Para este fim, a
linguagem C possui as seguintes características:
§ Uma linguagem 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
procedural
§ 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
§ 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
Algumas características úteis, que
faltam em C, podem ser encontradas em outras linguagens, que incluem:
§ Segurança de tipo
§ Coletor
de lixo (mais comum em linguagens
interpretadas)
§ Vetores que crescem automaticamente
§ Classes ou objetos com comportamento (ver Orientação
a objetos)
§ Closures
§ Funções
aninhadas
§ Sobrecarga de operadores
§ Meta-programação
§ Apoio nativo de multithreading e
comunicação por rede
Apesar
da lista de características úteis que C possui não ser longa, isso não tem sido
um impedimento à sua aceitação, pois isso permite que novos compiladores de C
sejam escritos rapidamente para novas plataformas, e também permite que o
programador permaneça sempre em controle do que o programa está a fazer. Isto é
o que por várias vezes permite o código de C correr de uma forma mais eficiente
que muitas outras linguagens. Tipicamente, só código de Assembly "afinado
à mão" é que corre mais rapidamente, pois possui um controle completo da
máquina, mas avanços na área de compiladores juntamente com uma nova
complexidade nos processadores modernos permitiram que a diferença tenha sido
rapidamente eliminada. Uma consequência da aceitação geral da linguagem C é que
frequentemente os compiladores, bibliotecas e até intérpretes de outras
linguagens de nível maior sejam eles próprios implementados em C.
C
tem como ponto forte, a sua eficiência, e é a linguagem de programação
preferida para o desenvolvimento de sistemas e softwares de base, apesar de
também ser usada para desenvolver programas de computador. É também muito usada
no ensino de ciência da computação, mesmo não tendo sido projetada para
estudantes e apresentando algumas dificuldades no seu uso. Outra característica
importante de C, é sua proximidade do código de máquina, que permite que
um projetista seja capaz de fazer algumas previsões de como o software irá se
comportar, ao ser executado.
C tem como ponto fraco, a
falta de proteção que dá ao programador. Praticamente tudo que se expressa em
um programa em C, pode ser executado, como por exemplo, pedir o vigésimo membro
de um vetor com apenas dez membros. Os resultados são muitas vezes totalmente
inesperados, e os erros, difíceis de encontrar.
Linha
do tempo da linguagem C:
- 1972 – Criação do
C;
- 1978 – Livro “The C
Programming Language” é publicado, sendo a primeira especificação da
linguagem;
- 1989 – Padronização
do C89 (conhecido como C ANSI ou Padrão C);
- 1990 – C ANSI
adotado pela ISO, conhecido como C90;
- 1999 – Estabelecido
padrão C99 (porém não implementado em muitos compiladores);
- 2007 – Trabalho no
novo padrão C, padrão C1X anunciado.
Onde
é usada a linguagem C?
A linguagem C por ser
muito versátil e possuir compiladores em diversas plataformas tem seu uso em:
- Sistemas
operacionais, como o Linux;
- Microcontroladores
de automóveis, aviões, leitores de cartão de crédito, entre outros.
- Processadores DSP de audio digital, sistemas de TV entre outros.
IDE
IDEs (Integrated
Development Environment ou Ambiente Integrado de Desenvolvimento) são
aplicativos muito úteis pois agregam em si editores, compiladores e
depuradores, trazendo mais rapidez e organização ao desenvolvimento,
principalmente em programas com tendência no aumento da quantidade de linhas de
código. Para programar em linguagem C existe algumas IDEs disponíveis:
- Dev-C++
- Eclipse (CDT);
- Microsoft Visual
C++ (Express Edition);
- KDevelop;
- Xcode;
- Anjuta.
FIGURA 2 – Interface do Dev-C++ versão 4.9.92.
|
Também é possível
programar em linguagem C através de qualquer editor de texto e compilar de
forma manual, como por exemplo usando GCC (GNU Compiler Collection). Com o GCC
já instalado no seu sistema, é muito simples usá-lo para compilar programas em
C, se o programa consistir de um único arquivo, você pode executar este comando
no terminal:
$ gcc programa.c -o programa
|
Seja o primeiro a comentar
Postar um comentário