A linguagem C é uma linguagem de programação
compilada de propósito geral, estruturada, imperativa, procedural, padronizada
pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell
Labs, para desenvolver o sistema operacional Unix.
A linguagem C é uma das linguagens de programação mais
populares . Esta linguagem tem influenciado muitas outras linguagens de
programação, mais notavelmente C++, que originalmente começou como
uma extensão para C.
História
O desenvolvimento inicial da linguagem 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.
Esta linguagem foi
originalmente desenvolvida 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.
Em 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 objectivo 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 ;
- 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;
A linguagem C tem como ponto forte, a sua eficiência. É 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. Outra característica importante de C, é sua proximidade do código
de máquina, que permite que um projectista seja capaz de fazer algumas previsões
de como o software irá se comportar, ao ser executado.
Tipos de dados
A linguagem C possui tipos para números inteiros de vários tamanhos com e sem sinal, números de
ponto flutuante, caracteres. C usa extensivamente ponteiros, um tipo
muito simples de referência que guarda o endereço de memória da
variável. Durante o tempo de execução, o ponteiro é simplesmente uma
morada de máquina tais como aquelas manipuladas em Assembly, mas em tempo
de compilação possui um tipo complexo que indica o tipo do objecto para
onde ele aponta, permitindo que se verifique o tipo de expressões, incluindo
ponteiros. Os ponteiros são usados extensivamente em C.
Tipo int (Inteiro)
O tipo de dado int (inteiro) serve para armazenar
valores numéricos inteiros. Existem vários tipos de inteiros, cada um de um
tamanho diferente (dependendo do sistema operacional e/ou arquitetura do
processador):
- int, pode possuir 16 bits, 32 bits ou 64 bits
- short int, deve possuir tamanho de no mínimo 16 bits e não pode ser maior que int
- long int, deve possuir tamanho mínimo de 32 bits
- long long int, deve possuir tamanho mínimo de 64 bits
Todos estes tipos de inteiros podem ainda ser declarados
precedidos da cláusula unsigned, o que faz com que só suporte números
positivos. Isto faz com que, com o mesmo tamanho, uma variável suporte mais
números positivos do que um signed.
Tipo char (Carácter)
O tipo char ocupa 1 byte, e serve para
armazenar caracteres. Isso significa que o programa reserva um espaço de 8
bits na memória RAM para armazenar um valor. Com vetores do tipo
char é possível criar strings que é um tipo que permite armazenar mais de um
caracter.
Tipo float (Real)
O tipo de dado float serve para armazenar números
reais , ou seja, que podem ou não conter casas decimais.
Tipo double
O tipo de dado double serve para armazenar números
decimais com dupla precisão, normalmente tem o dobro do tamanho do float e
portanto o dobro da capacidade.
Relações com C++
A linguagem de programação C++ foi originalmente
derivada do C para suportar programação orientada a objetos. À medida que
as linguagens C e C++ foram evoluindo independentemente, a divisão entre as
duas veio a aumentar.
Hoje, as principais diferenças entre as duas linguagens são:
- inline - em C++, funções em linha encontram-se no espaço global enquanto que em C encontram-se no espaço local. Por outras palavras, isso significa que, em C++, qualquer definição de qualquer função em linha tem de estar em conformidade com a "regra de uma definição" da linguagem C++. Mas em C, a mesma função em linha pode ser definida de maneira diferente em diferentes arquivos (ou ficheiros)
- A palavra-chave bool, igual à usada em C++. Padrões anteriores de C não definiam um tipo booleano e vários (e incompatíveis) métodos foram usados para simular um tipo booleano.
Algumas características originalmente desenvolvidas em C++ também
apareceram em C. Entre elas encontram-se:
- Protótipos de função (com declaração de tipos de parâmetros) e remoção do "int" implícito
- Comentários de linha, indicados por //; comentários de linha terminam com um carácter de nova-linha
- A palavra-chave inline
- Tipagem mais forte
Programa de exemplos
- Programa Olá Mundo
A seguinte aplicação foi publicada na primeira edição de C
de K&R, e tornou-se no programa de introdução padrão da maior parte dos
livros sobre C. O programa envia o texto "Olá, Mundo!" para a saída
padrão, que é normalmente o console.
#include
<stdio.h>
int main()
{
printf("Olá,
Mundo!\n");
return 0
}
Execução do programa, em consola |
A primeira linha do programa é uma diretiva de
pré-processamento #include, que
causa com que o pré-processador substitua aquela linha pela
totalidade do conteúdo do arquivo qual diretiva se refere. Neste caso o arquivo
padrão stdio.h (que contém
protótipos de funções para trabalho com entrada e saída) irá substituir a
linha.
Na linhaseguinte esta a se definir a função main. A função main é a função principal
no programa, pois existem casos em que temos duas ou mais funções num só
programa em C. Os caracteres { e }
delimitam a extensão da função. O termo int define o tipo de dados que será retornado na saida, que
neste caso é um inteiro.
A linha seguinte executa uma função chamada printf (que
é uma função predifinida contida na biblioteca stdio.h). O printf é utilizado quando se pretende mostrar algo durante a
execução do programa, e neste caso é a frase “Ola Mundo”. O comando return retorna o valor 0 para o sistema,
que é interpretado pelo mesmo como que a função main() foi executada e
encerrada com sucesso (sem erros). Por fim, o caracter } indica o fim da função main.
Eu comecei a aprender essa linguagem de programação do ensino médio. Com a intensão de mais tarde aprender a programar microcontroladores.
Eu comecei a aprender essa linguagem de programação do ensino médio. Com a intensão de mais tarde aprender a programar microcontroladores.
OBS: Neste artigo tentei focar no básico da linguagem C, o que é, sua história e caracteriscas. Para quem deseja aprender a programar pode fazer o download dos livros (apostilas), cujos links são:
Espero que elas ajudem, a aprender esta fascinante linguagem de programação.
Sem comentários:
Enviar um comentário