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

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Thiagol (discussão | contribs)
Sem resumo de edição
Edudobay (discussão | contribs)
Sem resumo de edição
Linha 1:
{{TopNav|up=Indice|next=História da Linguagem C}}
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 funcionam 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 sem reescrever todo o código.
 
'''C''' é uma das linguagens de programação mais populares para se escrever [[w:Sistemas Operacionais|Sistemassistemas Operacionaisoperacionais]], como o [[w:Microsoft Windows|Microsoft Windows]], o [[w:Mac OS X|Mac OS X]] e o [[w:GNU/Linux|GNU/Linux]]. Sistemas Operacionaisoperacionais funcionamcomunicam-se diretamente com o hardware,; não há nenhuma camada mais baixa para mediar seus pedidos. Originalmente, os Sistemassistemas Operacionaisoperacionais eram escritos na linguagem Assembly, o que resultava em um código muito rápido e eficiente. Entretanto, escrever um Sistemasistema Operacionaloperacional em Assembly é um processo tedioso (lento), e produz um código que funcionará somente em uma arquitetura de CPU, tal como o Intel X86x86 ou AMD64. Escrever um Sistemasistema Operacionaloperacional 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) do 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]]? Principalmente devido à atribuição de memória. Ao contrário de muitas linguagens de programação, o C permite ao programador endereçar a memória tal como o faria 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 algoritimos de alto-nível. No entanto, quando lidamos com tarefas de baixo-nível como aquelas que um 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 compilado em código maquina que é rapido e eficiente.
 
Mas porque ''C'' e não [[Java]] ou [[Basic]], ou ainda [[Perl]]? Principalmente devido àao atribuiçãogerenciamento de memória. Ao contrário de muitas linguagens de programação, o C permite ao programador endereçar a memória talde maneira muito parecida como oseria fariafeito 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 algoritimosalgoritmos 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 -- Algoalgo 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?
 
Será uma surpresa que C seja uma linguagem tão popular?
Como num efeito dominó, a próxima geração de programas segue a tendencia dos seus ancestrais. Sistemas Operacionais desenvolvidos em C sempre tem bibliotecas de sistema desenvolvidas em C. Essas bibliotecas são usadas para criar bibliotecas de programa (como OpenGL ou GTK), e seus desenvolvedores sempre decidem usar a mesma linguagem das bibliotecas de sistema. Desenvolvedores de aplicação usam bibliotecas de programa para desenvolver processadores de texto, jogos, tocadores de mídia, etc. Muitos vão decidir trabalhar com a mesma linguagem que a biblioteca foi escrita. E assim o processo continua...
 
Como num efeito dominó, a próxima geração de programas segue a tendenciatendência dos seus ancestrais. Sistemas Operacionaisoperacionais desenvolvidos em C sempre temtêm bibliotecas de sistema desenvolvidas em C. Essas bibliotecas são usadas para criar bibliotecas de programa (como OpenGL ou GTK), e seus desenvolvedores sempregeralmente decidem usar a mesma linguagem das bibliotecas de sistema. Desenvolvedores de aplicação usam bibliotecas de programa para desenvolver processadores de texto, jogos, tocadores de mídia, etc. Muitos vão decidir trabalhar com a mesma linguagem que a biblioteca foi escrita. E assim o processo continua...
----
:
<div id="naveg" style="background-color: #ffffff; border: solid 0px black; padding-left:
15px; padding-right: 15px; margin: 4px; text-align: right; font-size: 100%">
[[Programar em C: Indice|Voltar ao Indice]] | [[Programar em C: História da Linguagem C|História da Linguagem C]]
</div>
 
{{esboço}}