Executando verificação de segurança...
3

quando compilada, o processo de compilação é explícito, e quando interpretada, esse processo torna-se menos visível

Não. Tanto faz se o processo de compilação é explícito ou implícito. O fato de estar "escondido" não a torna "interpretada".

O que eu quis dizer é que essa separação entre "compilado" e "interpretado" não é tão simples assim. Na prática, não existe mais essa coisa de que uma linguagem só pode ser um dos dois.

Hoje em dia as implementações são softwares complexos e os conceitos acabam se misturando. Engines como o V8 (e os outros já citados) possuem vários componentes, cada um deles complicado por si só (compilador para gerar o bytecode, VM para executá-lo, JIT, etc). E cada um desses componentes pode ser composto por vários outros (apenas um compilador, por exemplo, é um software complexo por si só).

Então na prática o que temos hoje para muitas linguagens é um "híbrido": algumas partes podem ser compiladas, outras podem ser interpretadas, e outras partes que já foram compiladas podem ser novamente - como é o caso do JIT. E cada uma destas etapas pode ter outras intermediárias (exemplo de como ocorre em Java). Então se algumas partes são uma coisa e outras partes são outra coisa, não tem como dizer que é somente uma dessas coisas.

E - novamente - tanto faz se a compilação é explícita ou não. Se tem compilação, não dá pra dizer que é interpretada. Algumas partes podem ser, como é o caso da VM interpretando o bytecode. Mas só por causa disso vai dizer que é tudo interpretado?

Enfim, tire da cabeça essa ideia de que só existem dois grupos excludentes ("compilada" e "interpretada"), e cada linguagem só pode se encaixar em um deles. Pra mim, esta visão está ultrapassada. O que vemos de fato é que muitas implementações fogem completamente deste modelo "só pode ser um". Na verdade, vejo que muitas linguagens - principalmente as mainstream - têm optado pela abordagem "híbrida" com geração de bytecode, que roda em (ou é interpretado por) uma VM, que pode ou não ter um JIT (até PHP tem JIT, a partir da versão 8).

Carregando publicação patrocinada...