Ferramentas do usuário

Ferramentas do site


padronizacao

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.


padronizacao [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1
Linha 1: Linha 1:
 +====== História ======
 +
 +A linguagem de programação C é uma linguagem de programação estruturada e padronizada criada na década de 1970 por [[http://en.wikipedia.org/wiki/Ken_Thompson_(computer_programmer)|Ken Thompson]] e [[http://en.wikipedia.org/wiki/Dennis_Ritchie|Dennis Ritchie]] para ser usada no sistema operacional Unix. Desde então espalhou-se por muitos outros sistemas operacionais, e tornou-se numa das [[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html|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 [[http://en.wikipedia.org/wiki/Brian_Kernighan|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:
 +
 +   * [[tipos_dados|tipos de dados struct]]
 +   * [[tipos_dados|tipos de dados long int]]
 +   * [[tipos_dados|tipos de dados unsigned int]]
 +
 +O [[operadores|operador]] ''=+'' foi alterado para ''+='', e assim sucessivamente (o analizador léxico do compilador confundia o [[operadores|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:
 +
 +   * [[definicao_funcao|funções]] void e [[tipos_dados|tipos de dados void *]] 
 +   * [[definicao_funcao|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 [[tipos_dados|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, [[http://en.wikipedia.org/wiki/Bjarne_Stroustrup|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 [[tipos_dados|long long int]] (para minimizar a dor da transição de 32-bits para 64-bits), um tipo de dados [[tipos_dados|boolean]] explicito e um tipo [[tipos_dados|complex]] que representa números complexos;
 +   * Disposições de dados de comprimento variável;
 +   * Suporte oficial para [[comentarios|comentários]] de uma linha, emprestados da linguagem C++;
 +   * Várias funções de biblioteca novas, tais como [[snprintf]]; 
 +   * Vários [[pre_compilacao|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 [[http://gcc.gnu.org/|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.eti.br|Marcos Laureano]] 2009/05/08 05:32//
  
padronizacao.txt · Última modificação: 2023/09/12 16:14 por 127.0.0.1