Professional Documents
Culture Documents
Classificação
As linguagens de programação podem ser classificadas e sub-classificadas de
várias formas.
DEFINIÇÃO
O C++ (em português lê-se "cê mais mais" ou /sê/ /máys/ /máys/) é uma
linguagem de programação de alto nível com facilidades para o uso em baixo
nível, multiparadigma e de uso geral. Desde os anos 1990 é uma das
linguagens comerciais mais populares, sendo bastante usada também por seu
grande desempenho e base de utilizadores.
História
[editar] A evolução da linguagem
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs,
durante a década de 1980 com o objectivo implementar uma versão distribuída
do kernel Unix[1]. Como o Unix era escrito em C, deveria-se manter a
compatibilidade, ainda que adicionando novos recursos. Alguns dos desafios
incluíam simular a infraestrutura da comunicação entre processos num sistema
distribuído ou de memória compartilhada e escrever drivers para tal sistema.
Stroustrup percebeu que a linguagem Simula possuía características bastante
úteis para o desenvolvimento de software, mas que era muito lenta para uso
prático. Por outro lado, a linguagem BCPL era rápida, mas possuía demasiado
baixo nível, dificultando sua utilização no desenvolvimento de aplicações. A
partir de sua experiência de doutorado, começou a acrescentar elementos do
Simula no C. O C foi escolhido como base de desenvolvimento da nova
linguagem pois possuía uma proposta de uso genérico, era rápido e também
portável para diversas plataformas. Algumas outras linguagens que também
serviram de inspiração para o cientista da computação foram ALGOL 68, Ada,
CLU e ML.
C99
Após o processo da padronização ANSI, as especificações da linguagem C
permaneceram relativamente estáticas por algum tempo, enquanto que a
linguagem C++ continuou a evoluir. (em 1995, a Normative Amendment 1
criou uma versão nova da linguagem C mas esta versão raramente é tida em
conta.) Contudo, o padrão foi submetido a uma revisão nos finais da década de
1990, levando à publicação da norma ISO 9899:1999 em 1999. Este padrão é
geralmente referido como “C99”. O padrão foi adoptado como um padrão ANSI
em Março de 2000. As novas características do C99 incluem:
• funções em linha
• remoção de restrições sobre a localização da declaração de variáveis
(como em C++)
• adição de vários tipos de dados novos, incluindo o long long int (para
minimizar problemas na transição de 32-bits para 64-bits), um tipo de
dados boolean explicito (chamado _Bool) e um tipo complex que
representa números complexos
• vetores de dados de comprimento variável (o vetor pode ter um tamanho
diferente a cada execução de uma função, mas não cresce depois de
criado)
• suporte oficial para comentários de uma linha iniciados por //,
emprestados da linguagem C++
• várias funções de biblioteca novas, tais como snprintf()
• vários ficheiros-cabeçalho novos, tais como stdint.h
O interesse em suportar as características novas de C99 parece depender
muito das entidades. Apesar do GCC e vários outros compiladores suportarem
grande parte das novas características do C99, os compiladores mantidos pela
Microsoft e pela Borland suportam pouquíssimos recursos do C99, e estas duas
companhias não parecem estar muito interessadas em adicionar tais
funcionalidades, ignorando por completo as normas internacionais. A Microsoft
parece preferir dar mais ênfase ao C++ [1]
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. O padrão C99 criou um número de características que entram em
conflito. 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 (sem ser a respeito da sobrecarga de funções de C++) 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++, em C99 necessita que se
inclua o ficheiro-cabeçalho <stdbool.h> (_Bool está sempre disponível).
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.
Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve
sucesso como uma sucessora à linguagem C, inclusive servindo de inspiração
para outras linguagens como Java, a IDL de CORBA e C#.
REFERÊNCIAS BIBLIOGRÁFICAS: