Há muitas maneiras de distinguir linguagens de programação. Para começar, eles se enquadram em diferentes paradigmas: funcionais, orientados a objetos e muito mais.

Você também pode classificar uma linguagem de programação pelo seu método de tradução, algo que tem um grande efeito no desempenho de uma linguagem. As linguagens de programação compiladas são geralmente mais rápidas que as interpretadas. Assim, em situações como o desenvolvimento de jogos que exigem velocidade, os desenvolvedores tendem a usar linguagens compiladas.

O que é tradução?

O processo de tradução converte o código escrito por um programador em código de máquina que um computador pode executar. O código de máquina é um tipo de linguagem de baixo nível, que possui uns e zeros. Então, o que o tradutor faz é converter o código de alto nível que você cria em uma linguagem de programação em código de máquina.

Sem tradutores, você teria que codificar em linguagem de máquina. Cada linguagem de programação de alto nível que você conhece usa um dos três métodos de tradução: um compilador, um interpretador ou um híbrido dos dois.

instagram viewer

O que é um compilador?

Um compilador é um software que converte código-fonte escrito em uma linguagem de alto nível em código de baixo nível para execução.

O diagrama acima representa um compilador em sua forma mais básica. O compilador tem várias fases. Cada fase transforma o código de um estado para outro. O objetivo de cada fase do compilador é criar uma saída que seja mais fácil de ser manipulada pela fase seguinte. A estrutura geral de um compilador é a seguinte:

  • Scanner: esta fase pega um fluxo de caracteres e os agrupa em tokens que representam identificadores, literais de string e assim por diante.
  • Parser: esta fase agrupa os tokens com base na gramática da linguagem de programação de origem. Ele cria uma árvore de sintaxe abstrata que é uma coleção de expressões que compõem o programa.
  • Semântica: esta fase realiza uma análise semântica na árvore sintática abstrata (AST). Ele usa as regras do idioma de origem para adicionar significado, atribuindo tipos às expressões AST e verificando sua validade. O AST torna-se então uma representação intermediária.
  • Representação Intermediária (IR): esta fase converte o código-fonte do programa original em código de máquina. Ele produz uma versão simplificada do código assembly. O IR usa um ou mais otimizadores para melhorar o código IR e coletar informações para a máquina em que está sendo executado. Um otimizador pode tornar um programa mais eficiente, mais rápido ou até mesmo menor.
  • Gerador de código: esta fase consome o código IR otimizado e o converte em código de máquina.

Quais linguagens de programação usam compiladores?

Algumas linguagens de programação compiladas populares incluem:

  • C
  • C++
  • Vai
  • Ada
  • Fortran
  • COBOL
  • Lisp
  • Objetivo-C
  • Rápido

Uma vantagem de usar uma linguagem compilada é que ela identifica erros durante a compilação. Isso permite que você corrija esses bugs e tente compilar o programa novamente. As linguagens compiladas são menos propensas a falhar quando começam a ser executadas. Essas linguagens nem mesmo gerarão um programa para ser executado se o código-fonte tiver erros de sintaxe. Mas erros semânticos e outras formas de bug em tempo de execução passarão por isso.

As linguagens compiladas também são executadas muito rapidamente depois de compiladas.

O que é um intérprete?

Um interpretador é um programa que traduz e executa uma única linha de código por vez. Esse processo se repete até que o interpretador chegue à linha final de código no programa ou script fornecido.

Como você pode ver no diagrama acima, um interpretador recebe duas entradas. Primeiro, leva todo o código-fonte (programa). Em seguida, ele lê a primeira linha do programa (como uma entrada), traduz e executa. Se essa linha for executada corretamente, ela passará para a próxima linha no programa ou script.

Ao contrário de um compilador, um interpretador não traduz um programa inteiro em código de máquina. Em vez disso, ele analisa e analisa uma determinada linha de código antes de executá-la. Um interpretador deve começar a executar um programa - especialmente um maior - antes mesmo de um compilador terminar de traduzi-lo.

Quais linguagens de programação usam intérpretes?

Algumas linguagens de programação interpretadas populares incluem:

  • Pitão
  • JavaScript
  • Perl
  • MATLAB
  • BÁSICO

Embora um interpretador comece a executar o código mais rapidamente, ele ainda falhará se encontrar um erro. Como programador, você precisaria corrigir esse erro e reiniciar o programa. Este evento ocorre sempre que o interpretador encontra um novo erro. Alguns erros podem permanecer latentes se estiverem relacionados a um conjunto raro de circunstâncias. Em tais casos, teste é mais importante do que nunca.

Os intérpretes geralmente são mais fáceis de desenvolver do que os compiladores, e seus programas são mais portáteis por design.

O que é tradução híbrida?

A tradução híbrida emprega um compilador e um intérprete. A tradução híbrida compila o código-fonte de alto nível para um formato de nível inferior, como bytecode. Em seguida, ele usa um interpretador para executar esse bytecode.

A tradução híbrida pode diferir de uma linguagem de programação para outra, mas usará essa estrutura geral. Uma das linguagens de programação mais populares que usam tradução híbrida é Java. O compilador Java traduz seu código-fonte em Código de bytes da máquina virtual Java (JVM). O interpretador então converte o bytecode da JVM em código de máquina.

Quais linguagens de programação usam tradução híbrida?

Algumas linguagens de programação híbridas populares incluem:

  • Java
  • C#
  • Visual básico
  • Erlang
  • F#

Com a tradução híbrida, você obtém o melhor dos dois mundos. Compilar o código primeiro permite que você resolva os bugs na primeira oportunidade. O bytecode que os compiladores híbridos criam é mais fácil de interpretar do que um código-fonte de programa de alto nível.

O valor de conhecer os diferentes métodos de tradução

Você deve entender o método de tradução específico que um idioma usa, principalmente se o estiver usando para um novo projeto. Um método de tradução de linguagem é uma parte importante da identidade de uma linguagem de programação. Isso pode afetar como você distribui seu programa e como os usuários o executarão.

Cada abordagem de tradução tem seus próprios méritos. As principais linguagens de programação, como C++, Python e Java, usam métodos de tradução diferentes. Ao lado do paradigma de um idioma, seu método de tradução é uma das características mais importantes que você deve conhecer.

Existem vários paradigmas que uma linguagem de programação pode usar. A maioria das principais linguagens de programação são linguagens multiparadigmáticas; eles suportam o uso de dois ou mais paradigmas distintos. Três dos paradigmas mais populares são programação imperativa, orientada a objetos e funcional.