Linguagem de computador ou linguagem de programação é uma sintaxe codificada usada por programadores de computador para se comunicar com um computador. É a única linguagem que os computadores, programas de software e hardware de computador podem entender. A linguagem de computador estabelece um fluxo de comunicação entre os programas de software. A linguagem permite que um usuário de computador dite quais comandos o computador deve executar para processar dados. A linguagem de computador vem em vários tipos que empregam diferentes conjuntos de sintaxe.
Linguagem de máquina
A linguagem de máquina ou código de máquina é a linguagem nativa compreendida diretamente pela unidade de processamento central do computador ou CPU. Esse tipo de linguagem de computador não é fácil de entender, pois utiliza apenas um sistema binário, um elemento de notações contendo apenas uma série de números compostos por um e zero, para produzir comandos. O processador do computador precisa converter linguagens de alto nível para essa linguagem antes de poder executar um programa ou executar um comando definido pelo usuário. Para converter uma determinada linguagem em código de máquina, o processador do computador precisa de um compilador, um programa que converte um código-fonte escrito em uma linguagem em uma sintaxe de linguagem diferente. O compilador gera um arquivo binário, ou arquivo executável, que a CPU irá executar. Cada processador de computador tem seu próprio conjunto de código de máquina. O código de máquina determinará o que o processador do computador deve fazer e como deve fazê-lo.
Linguagem de nível de montagem
Um estudo no início da década de 1950 levou ao desenvolvimento de linguagens de baixo nível ou Assembly Level Language. Também considerada como linguagem de segunda geração, a Assembly Level Language é um conjunto de códigos que podem ser executados diretamente no processador do computador. Esse tipo de linguagem é mais apropriado para escrever sistemas operacionais e manter aplicativos de desktop. Ele permite que o programador execute várias tarefas, como acesso ao registro, gerenciamento de memória e correspondência do ciclo do relógio. Com a linguagem assembly, fica mais fácil para um programador definir comandos porque ele tem a prerrogativa de nomear as variáveis. No entanto, essa linguagem não é flexível, pois o usuário não pode reutilizar o conjunto de códigos escritos nessa linguagem. Não é tão explicativo em comparação com seus outros homólogos. O usuário precisa criptografar essa linguagem em linguagem de máquina para que o computador processe os comandos escritos pelo programador.
Idioma de alto nível
O desenvolvimento de linguagens de alto nível surgiu quando os programadores de computador começaram a ter problemas com a crescente falta de portabilidade do computador. Linguagens de alto nível ignoram os detalhes sem importância encontrados em linguagens de baixo nível. Muitos programadores consideram a linguagem de alto nível como uma solução importante para os problemas causados pelas linguagens de computador devido à sua facilidade de uso e baixa tendência a produzir bugs. Os programadores geralmente se referem a linguagens de alto nível como linguagens de nível médio que usam apenas os conceitos de abstração e construções ao extremo.