Programar em C/Por que aprender a linguagem C: diferenças entre revisões

[edição verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
m Não é mais preciso inserir a navegação manualmente, basta manter a lista de capítulos do livro atualizada. Ver detalhes.
Ajustes
Linha 5:
'''C''' é uma das linguagens de programação mais populares para se escrever [[w:Sistemas Operacionais|sistemas operacionais]], como o [[w:Microsoft Windows|Microsoft Windows]], o [[w:Mac OS X|Mac OS X]] e o [[w:GNU/Linux|GNU/Linux]]. Sistemas operacionais comunicam-se diretamente com o hardware; não há nenhuma camada mais baixa para mediar seus pedidos. Originalmente, os sistemas operacionais eram escritos na linguagem Assembly, o que resultava em um código muito rápido e eficiente. Entretanto, escrever um sistema operacional em Assembly é um processo tedioso (lento), e produz um código que funcionará somente em uma arquitetura de CPU, tal como o Intel x86 ou AMD64. Escrever um sistema operacional em uma linguagem de alto nível, tal como C, possibilita que os programadores readaptem o sistema operacional a várias arquiteturas sem precisar reescrever todo o código. O [[w:Linux (kernel)|núcleo (kernel) Linux]] é um exemplo de sistema operacional escrito em C, com apenas algumas seções do código escritas em Assembly, para poder executar instruções que só existem em uma ou outra arquitetura e para algumas otimizações.
 
Mas porque ''C'' e não [[Java]] ou [[Basic]], ou ainda [[Perl]]? PrincipalmenteLinguagens devidocomo aoo gerenciamentoJava ou Perl são linguagens a base de memóriabytecode interpretado por uma maquina virtual sendo assim não é um código interpretado diretamente pelo processador. Ao contrário de muitas linguagens de programação, o C permite ao programador endereçar a memória de maneira muito parecida como seria feito em Assembly. Linguagens como o Java ou o Perl fornecem mecanismos que permitem que o programador faça o seu trabalho sem se ter de preocupar com a atribuição de memória ou com apontadores. Geralmente isso é bom, uma vez que é bastante tedioso lidar com a alocação de memória quando escrevemos aplicações com algoritmos de alto nível. No entanto, quando lidamos com tarefas de baixo-nível como aquelas que um núcleo (kernel) tem obrigação de desempenhar, como a de copiar um conjunto de bytes para uma placa de rede, torna-se altamente necessário um acesso directo à memória ― algo que não é possível fazer apenas com Java. C pode ser diretamente compilado em código de maquina, que é rapido e eficiente.
 
Será uma surpresa que C seja uma linguagem tão popular?