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
Lightningspirit (discussão | contribs)
Sem resumo de edição
Sem resumo de edição
Linha 1:
Os [http://pt.wikipedia.org/wiki/Sistema_operacional Sistemas Operacionais] mais populares são hoje o Microsoft Windows, o Mac OS X e o GNU/Linux. Cada um é escrito em C. Porque? Porque os 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 a coisa inteira.
 
Tudo bem. Mas porque 'C' e não Java ou Basic ou 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 algoritrmos de alto-nível. No entento, 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. Além disso, um compilador de C permite também produzir código máquina rápido e eficiente, nalguns casos com possibilidade de optimizar.
Tudo bem. Mas porque 'C' e não Java ou Basic ou Perl? Mostly because of memory allocation. Unlike most computer languages, C allows the programmer to address memory the way he would using assembly language. Languages like Java and Perl shield the programmer from having to worry about memory allocation and pointers. This is usually a good thing. It's quite tedious to deal with memory allocation when building a high-level program like a quarterly income statement report. However, when dealing with low level code such as that part of the OS that moves the string of bytes that makes up that quarterly income report from the computer's memory to the network card's buffer so they can be shipped to the network printer, direct access to memory is critical -- something you just can't do with Java. The C compiler also produces fast and efficient machine code.
 
So is it any wonder that C is such a popular language?