Como classificar uma linguagem de programação como compilada ou interpretada?
Bem, a resposta é simples, definindo o contexto ou ponto de vista!
E como estamos analisando linguagens de programação, nosso contexto é arquitetura de
linguagens de programação.
Na computação, a compilação é o processo que reúne o código fonte e o transforma em algo
que faça mais sentido para o computador. Do ponto de vista do código fonte, toda linguagem
de programação é compilada.
O produto final do processo de compilação de uma linguagem diz muito sobre seu design.
Linguagens como C e C++ são compiladas estaticamente, e seus códigos fontes são
transformados diretamente em linguagem de máquina. Enquanto as linguagens mais
modernas como Java, C# e Python têm seus códigos fontes transformados em uma
linguagem intermediária (específica de cada linguagem), que será interpretada pela máquina
virtual da linguagem quando o programa for executado.
Este processo de interpretação da linguagem intermediária durante a execução do programa,
consiste na tradução dos comandos da linguagem intermediária para linguagem de máquina.
Sendo assim, em tempo de execução, o código intermediário pode ser encarado como um
“código fonte” que será compilado dinamicamente pelo interpretador da linguagem em código
de máquina.
Obviamente, ter este processo de compilação embutido na execução do programa tem um custo.
E esse custo não é barato! Por isso, nos últimos anos muito foi investido para otimizar este
processo, resultando em todas as técnicas de Just In Time Compiling e Ahead of Time Compiling
que permitem as linguagens interpretadas alcançarem performance excepcionais.
Finalmente, com base nestas definições, podemos dizer que C e C++ são linguagens compiladas.
Enquanto Java, C# e Python, mesmo com as técnicas de JIT e AOT, são linguagens interpretadas,
afinal, esta é uma definição da arquitetura da linguagem de programação.
“A subtileza ainda não é inteligência. Às vezes os tolos e os loucos também são extraordinariamente subtis.”
- Пушкин, Александр Сергеевич
Nenhum comentário:
Postar um comentário