Vamos quebrar como diferentes idiomas se relacionam com a linguagem e a portabilidade de montagem:
Linguagem de montagem:a fundação *
baixo nível: A linguagem de montagem é a linguagem de programação de menor nível que interage diretamente com o hardware de um computador. Ele usa mNemonics (códigos curtos) para representar as instruções da máquina.
*
específico da máquina: Cada arquitetura da CPU (como x86, braço etc.) tem sua própria linguagem de montagem única. O código escrito para uma arquitetura não será executado em outro.
*
Falta de portabilidade: Os programas de linguagem de montagem são notoriamente difíceis de portar entre diferentes CPUs. Isso ocorre porque as instruções de hardware subjacentes e os mecanismos de endereçamento de memória variam significativamente.
Idiomas de alto nível:abstração e portabilidade *
Abstração: Línguas de alto nível (como Python, Java, C ++) fornecem um nível mais alto de abstração. Eles usam palavras-chave, tipos de dados e estruturas de fluxo de controle que são mais legíveis pelo homem.
*
compiladores/intérpretes: A magia da portabilidade acontece aqui. Esses programas traduzem código de alto nível em instruções específicas da máquina (linguagem de montagem). Esse processo é chamado de compilação (para idiomas como C, C ++, Rust) ou interpretação (para idiomas como Python, JavaScript).
*
plataforma de destino: Os compiladores são projetados para uma plataforma de destino específica (arquitetura da CPU e sistema operacional). Quando você compila um programa de alto nível, o compilador gera código da máquina otimizado para esse destino.
Portabilidade:o trade-off *
mais portabilidade, menos controle: Os idiomas de alto nível oferecem maior portabilidade porque abstraem os detalhes do hardware. No entanto, essa abstração tem o custo de controle reduzido sobre o código da máquina gerado.
*
menos portabilidade, mais controle: A linguagem de montagem fornece controle de granulação fina sobre a máquina, mas sacrifica a portabilidade.
Exemplos *
c/c ++: Esses idiomas são considerados "semi-portáveis". Embora sejam projetados para serem portáteis, às vezes podem exigir ajustes específicos da plataforma para funcionar perfeitamente em diferentes sistemas.
*
java: Java possui excelente portabilidade graças à sua filosofia "Escreva uma vez, corra em qualquer lugar". O código Java é compilado no ByteCode, que pode ser executado em qualquer plataforma com uma máquina virtual Java (JVM).
*
python: O intérprete do Python está disponível em várias plataformas, tornando -o altamente portátil.
Torneira de chave A linguagem de montagem é específica da máquina, tornando-a não portável. Os idiomas de alto nível alcançam a portabilidade usando compiladores/intérpretes para preencher a lacuna entre o código abstrato e o hardware subjacente. O nível de portabilidade alcançado depende do idioma específico e da sofisticação de seu compilador ou intérprete.