Programação de alto nível vs médio vs baixo nível: usos e diferenças

Programação de alto nível x médio x baixo nível

Hoje são muitos linguagens de programação , alguns mais fáceis e acessíveis e outros mais complexos. No entanto, as máquinas entendem apenas um idioma: binário. Programar em binário é algo inviável e impossível, principalmente considerando o complexidade das máquinas de hoje. No entanto, a computação hoje não evoluiu tanto a ponto de ser capaz de programar usando linguagem natural; estamos em um ponto médio e, dependendo de quão próximos ou distantes estamos da linguagem de máquina, podemos falar de diferentes níveis de programação : alto, médio ou baixo.

No final das contas não importa (entre aspas) a linguagem de programação que usamos, pois tudo tem que passar por um compilador que gera o arquivo binário, o executável, que é aquele que a máquina processa. No entanto, dependendo do tipo de programação que usamos e do propósito do nosso projeto, podemos estar mais interessados ​​em usar um nível de linguagem ou outro. Qual a diferença entre eles?

Programação de baixo nível: falando com a máquina

Programação de baixo nível

Programação de baixo nível é aquele cujas instruções estão muito próximas da linguagem de máquina. Os programas são projetados para funcionar com hardwares específicos, já que as instruções são projetadas para uma arquitetura específica. Se escrevermos um programa em um nível baixo e o levarmos para uma máquina diferente, ele não o reconhecerá, pois não é compatível com as instruções.

O principal vantagem dessas linguagens de programação é seu desempenho. Como nada precisa ser interpretado ou compilado, o código é executado como está no hardware, evitando intermediários. Mas entre seus desvantagens , para além da sua complexidade, devemos destacar a incompatibilidade entre as plataformas, mesmo tendo que recriar o programa do zero se quisermos utilizá-lo em outra máquina.

As linguagens de programação de baixo nível interagem diretamente com o hardware, sem compiladores ou interpretadores adicionais, o que nos permite obter um melhor desempenho. Esse era (por exemplo) o tipo de programação usado em cartões perfurados. As instruções são enviadas para o equipamento diretamente no binário (primeira geração), ou usando uma linguagem um pouco mais familiar, como assembler (segunda geração), composta por abreviaturas como ADD, DIV ou SUB. Hoje esse tipo de programação só é usado para manter os sistemas de antigamente, ninguém pensaria em criar um novo projeto em linguagens de baixo nível.

Programação de nível médio: acesso ao hardware com linguagem “natural”

Programação de médio nível

Idiomas de nível médio também são línguas muito antigas, mas foram as primeiras a nascer como resultado da evolução das línguas de baixo nível. Essas linguagens estão em algum lugar entre as linguagens de baixo e alto nível porque, embora usem instruções relativamente simples e naturais, o programador tem acesso ao hardware no da mesma forma que a linguagem de baixo nível. Desta forma, os programas podem acessar os registros do sistema e o programador pode trabalhar com endereços de memória.

Embora uma linguagem muito mais natural seja usada do que a binária ou o próprio assembler, usando instruções simples e não exigindo interpretadores complexos, um desempenho semelhante ao de programas de baixo nível é alcançado.

As vantagens dos idiomas neste nível são que eles são muito mais simples e mais natural do que as linguagens de máquina, permitindo que você crie programas complexos de forma mais rápida e fácil. Além disso, por não estar em um nível muito alto, a perda de desempenho é mínima e ele tem acesso aos registros do sistema e seus recursos (por meio de ponteiros de memória). Porém, não permite a criação de estruturas dinâmicas nem ser orientado a objetos ou eventos.

C , por exemplo, é a linguagem de programação de nível médio mais representativa. Embora seja geralmente considerada de alto nível, na verdade possui características típicas de uma linguagem de baixo nível, como poder usar letras como se fossem números (não faz distinção), e uso de ponteiros, essenciais para a implementação de hashes e algoritmos. Outro exemplo de linguagem de nível médio é Basico .

Linguagens de alto nível: falar com certa naturalidade

Programação de alto nível

Embora a programação pareça um tanto complicada para muitos, na realidade hoje é muito simples e, com algumas noções básicas, qualquer um poderia criar seu próprio programa. Isso é possível graças a de alto nível linguagens de programação, linguagens que usam instruções claras em linguagem natural.

Linguagens de alto nível são projetadas para funcionar sem problemas em qualquer máquina, independentemente do hardware que você usa. Isso é possível graças a compiladores e intérpretes que normalmente são incluídos nativamente em sistemas operacionais. Não importa se um programa está programado em C ++, .NET, Java ou Python, se o código passou pelo compilador, e temos o interpretador necessário (como a máquina virtual Java), podemos executá-los em qualquer sistema operacional, use qualquer hardware que você usar.

Essas linguagens de programação são projetadas, acima de tudo, para trabalhar com dinâmica estruturas de dados. Linguagens de baixo e médio nível não podem redimensionar estruturas enquanto estão em execução, o que pode levar ao consumo excessivo de recursos ou problemas de tamanho reduzido. Graças a essas estruturas dinâmicas, o programa pode ser ajustado às necessidades de cada sistema. Eles são objeto , linguagens orientadas a eventos ou funções.

As vantagens deste tipo de linguagem são a criação de um código muito mais natural e compreensível , um programa é adequado para qualquer máquina e qualquer sistema, suporta paradigmas de programação e permite a criação de programas complexos com menos linhas. Entre suas desvantagens, é claro, devemos destacar um perda de desempenho dos programas (já que devem ser interpretados) e que, em alguns casos, os programas dependem de plataformas específicas.

Existem muitas linguagens de programação de alto nível. Podemos encontrar idiomas muito específicos (como Fortran or Cobol ) para realizar tarefas específicas ou linguagens genéricas, como VS # , C ++ or Visual Basic que valem um pouco de tudo.