O que é uma linguagem de programação de baixo nível?
Há alguma discordância em relação à definição exata de uma linguagem de programação de baixo nível, mas todas as definições compartilham algumas coisas em comum em relação às características de tal linguagem de computador. Essas características incluem: semelhança com o código binário, conhecimento necessário do papel da unidade central de processamento (CPU) e a capacidade do programador de controlar o hardware por meio da linguagem. Algumas pessoas consideram qualquer linguagem de computador de baixo nível se não for semelhante à linguagem que as pessoas falam. Outros consideram qualquer linguagem que exija que o programador compreenda o funcionamento intrincado e muito complexo da CPU como de baixo nível. Deve-se lembrar que uma linguagem de programação verdadeiramente de baixo nível geralmente se encaixa em todas essas descrições.
O código binário, também chamado de código de máquina, é a única linguagem que a CPU, ou o "cérebro" de um computador, entende e "fala". O código da máquina, se visualizado por uma pessoa, se parece com muitas seqüências dos números 1 e 0; eles representam um estado de estar ligado ou desligado, como uma luz que é ligada ou desligada. O código de uma linguagem de programação de alto nível seria muito diferente do código da máquina, pois contém símbolos e palavras reais usadas em um idioma, geralmente inglês, que as pessoas falam. Isso não significa, no entanto, que alguém que não seja programador de computador entenda o código em uma linguagem de alto nível, assim como não entenderia uma linguagem de baixo nível.
Entre as maiores vantagens de uma linguagem de programação de baixo nível está a capacidade e a liberdade de exercer controle preciso sobre coisas como uso de memória e tempo de processamento. Isso significa que os programas escritos em uma linguagem de baixo nível devem fazer uso muito eficiente dos recursos do sistema, o que pode ser altamente desejado ao codificar para sistemas com recursos muito limitados. Essa vantagem não vem sem preço. Desenvolvedores e engenheiros que codificam em uma linguagem de programação de baixo nível devem ter um bom entendimento das funções da CPU para escrever instruções que afetam a memória e o tempo de processamento.
Codificar em uma linguagem de programação de baixo nível é extremamente demorado e tedioso. Isso aumenta de maneira compreensível o custo envolvido em ter um programa desenvolvido em tal linguagem, porque o equivalente a apenas duas linhas de código em uma linguagem de alto nível pode exigir até 20 linhas em uma linguagem de programação de baixo nível. Esse desenvolvimento lento torna as linguagens de baixo nível adequadas principalmente para programas muito pequenos. Eles quase nunca são usados para o desenvolvimento de programas maiores.