Ferramentas do usuário

Ferramentas do site


padronizacao

Tabela de conteúdos

História

A linguagem de programação C é uma linguagem de programação estruturada e padronizada criada na década de 1970 por Ken Thompson e Dennis Ritchie para ser usada no sistema operacional Unix. Desde então espalhou-se por muitos outros sistemas operacionais, e tornou-se numa das linguagens de programação mais usadas. A linguagem C tem como ponto-forte a sua eficiência e é a linguagem de programação de preferência para o desenvolvimento de aplicações para sistemas operacionais, apesar de também ser usada para desenvolver aplicações mais complexas.

O desenvolvimento inicial da linguagem C ocorreu nos laboratórios Bell da AT&T entre 1969 e 1973. Deu-se o nome “C” à linguagem porque muitas das suas características derivaram de uma linguagem de programação anterior chamada “B”. Há vários relatos que se referem à origem do nome “B”: Ken Thompson dá crédito à linguagem de programação BCPL mas ele também criou uma outra linguagem de programação chamada Bon, em honra da sua mulher Bonnie. Por volta de 1973, a linguagem C tinha-se tornado suficientemente poderosa para que grande parte do núcleo de Unix, originalmente escrito na linguagem de programação PDP-11/20 assembly, fosse reescrito em C. Este foi um dos primeiros núcleos de sistema operacional que foi implementado numa linguagem sem ser o assembly, sendo exemplos anteriores o sistema Multics (escrito em PL/I) e TRIPOS (escrito em BCPL).

C de K&R

Em 1978, Ritchie e Brian Kernighan publicaram a primeira edição do livro The C Programming Language. Esse livro, conhecido pelos programadores de C como “K&R”, serviu durante muitos anos como uma especificação informal da linguagem. A versão da linguagem C que ele descreve é usualmente referida como “C de K&R”. K&R introduziram as seguintes características na linguagem:

O operador =+ foi alterado para +=, e assim sucessivamente (o analizador léxico do compilador confundia o operador =+. Por exemplo, i =+ 10 e i = +10).

C de K&R é frequentemente considerado a parte mais básica da linguagem que é necessário que um compilador C suporte. Nos anos que se seguiram à publicação do C K&R, algumas características “não-oficiais” foram adicionadas à linguagem, suportadas por compiladores da AT&T e de outros fornecedores. Estas incluiam:

  • funções que retornam tipos struct ou union
  • campos de nome struct num espaço de nome separado para cada tipo struct
  • atribuição a tipos de dados struct
  • qualificadores const para criar um objecto só de leitura
  • uma biblioteca-padrão que incorpora grande parte da funcionalidade implementada por vários fornecedores
  • enumerações
  • o tipo de ponto-flutuante de precisão simples

C ANSI e C ISO

Durante os finais da década de 1970, a linguagem C começou a substituir a linguagem BASIC como a linguagem de programação de microcomputadores mais usada. Durante a década de 1980, foi adoptada para uso no PC IBM, e a sua popularidade começou a aumentar significativamente. Ao mesmo tempo, Bjarne Stroustrup, juntamente com outros nos laboratórios Bell, começou a trabalhar num projeto onde se adicionava programação orientada à objetos à linguagem C. A linguagem que eles produziram, chamada C++, é nos dias de hoje a linguagem de programação de aplicações mais comum no sistema operacional Windows da Microsoft; enquanto o C permanece mais popular no mundo Unix. Em 1983, o instituto norte-americano de padrões (ANSI) formou um comitê, X3j11, para estabelecer uma especificação do padrão da linguagem C. Após um processo longo e árduo, o padrão foi completo em 1989 e ratificado como ANSI X3.159-1989 “Programming Language C”. Esta versão da linguagem é frequentemente referida como C ANSI. Em 1990, o padrão C ANSI, após sofrer umas modificações menores, foi adotado pela Organização Internacional de Padrões (ISO) como ISO/IEC 9899:1990. Um dos objectivos do processo de padronização C ANSI foi o de produzir um subconjunto do C K&R, incorporando muitas das características não-oficiais subsequentemente introduzidas. Entretanto, muitos programas já tinham sido escritos e não compilavam em certas plataformas, ou com um certo compilador, devido ao uso de bibliotecas não-padrão (por exemplo, interfaces gráficas) alguns compiladores não aderirem ao padrão C ANSI.

C99

Após o processo ANSI de padronização, as especificações da linguagem C permaneceram relativamente estáticas por algum tempo, enquanto que a linguagem C++ continuou a evoluir. 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 adotado como um padrão ANSI em Março de 2000. As novas características do C99 incluem:

  • Funções em linha ;
  • Levantamento 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 a dor da transição de 32-bits para 64-bits), um tipo de dados boolean explicito e um tipo complex que representa números complexos;
  • Disposições de dados de comprimento variável;
  • Suporte oficial para comentários de uma linha, emprestados da linguagem C++;
  • Várias funções de biblioteca novas, tais como snprintf;
  • Vários arquivos-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 não, e estas duas companhias não parecem estar muito interessadas adicionar tais funcionalidades, ignorando por completo as normas internacionais.

Marcos Laureano 2009/05/08 05:32

padronizacao.txt · Última modificação: 2023/09/12 16:14 por 127.0.0.1