Mensagem de boas vindas

Olá e seja bem vindo ao blog Mecatrónica para todos.
"Facilitando a vida do estudante angolano"...

Traduzir esta página / Translate this page

domingo, 6 de maio de 2012

Linguagem de programação C




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):
  1. int, pode possuir 16 bits, 32 bits ou 64 bits
  2. short int, deve possuir tamanho de no mínimo 16 bits e não pode ser maior que int
  3. long int, deve possuir tamanho mínimo de 32 bits
  4. 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.


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:
  1. Apostila de linguagem C
  2. Curso de linguagem C
Espero que elas ajudem, a aprender esta fascinante linguagem de programação.

Sem comentários:

Enviar um comentário