Há muito poucos níveis de software entre usuários de computador e do próprio computador , e isso é mesmo verdade - em menor grau - para o programador de computador ? . O código de computador que a maioria dos programadores escrever é apenas remotamente conectado com as instruções que são processados pelo computador. Estes níveis de tornar o computador mais fácil de usar . Linguagem de Máquina
Cada computador é feito para correr uma língua. Essa linguagem é chamada de linguagem de máquina para esse computador . A linguagem é composta de códigos binários que dizem ao computador exatamente o que fazer . Todos os programas que são executados no computador consistem em uma seqüência de instruções em linguagem de máquina. A execução dessa seqüência de instruções cria o comportamento do computador. Instruções consistem em instruções específicas de hardware, como a movimentação de dados de localização de memória X ao local de memória Y, movimentação de dados para dentro ou fora de um registo específico, adicionando os números que estão agora nos registros de entrada adder ou lançando todos os bits no registrador R1. Execução de instruções escritas em linguagem de máquina é a única coisa que qualquer computador pode fazer .
Montadores
código em linguagem de máquina de escrita é extremamente entediante, sujeito a erros e difícil de depurar. Tudo é seqüências de zeros e uns . É impossível dizer em poucas palavras , se é 1111000100110101 de dados, uma instrução ou o endereço de um local de memória . O primeiro nível de refinamento em programação de computadores foi a invenção da linguagem assembly e software montadoras. Programas em linguagem Assembly têm as mesmas instruções que o programa em linguagem de máquina , mas as instruções são coisas como "Adicionar" e "MOVE ", que são muito mais fácil para os seres humanos a lidar com eles. Além disso , os endereços estão em números decimais e registradores são designados com nomes como R1 , em vez de 10.001.111 . Um programa chamado um montador traduz programas escritos em linguagem de montagem para o programa equivalente em linguagem de máquina para que possa ser executado.
Compiladores
Assembléia língua era um enorme melhoria sobre a escrita em linguagem de máquina. O tempo extra que levou o assembler para traduzir o que o programador escreveu em linguagem de máquina foi mais que compensada pela enorme economia de tempo que levou para escrever o programa em uma linguagem mais humana -friendly. A solução não era perfeito. As pessoas - especialmente aqueles que não são cientistas da computação - queria descrever o problema para resolver , em vez de dividi-lo em pequenos passos sobre como mover as informações em torno de um computador. O próximo nível na hierarquia de linguagem era a linguagem do compilador. Estas linguagens permitem que o ser humano para descrever o que era para ser feito em termos noncomputer . Um programa chamado compilador traduziu esses programas de alto nível em linguagem de máquina . Compiladores são muito mais complicado do que montadoras.
Simuladores
Em vez de construir novas máquinas para executar programas escritos em novas linguagens , simuladores de software permitem que uma máquina seja " simulado . " Estas máquinas virtuais são exaustivamente testados através da execução de programas de benchmarking antes de serem já construído. Os simuladores são também usados para testar novos compiladores e linguagens antes de serem já escrito .