Significado de Interpretado ou Compilado em JavaScript

Os computadores não podem realmente executar o código em que você escreve Javascript (ou qualquer outro idioma para esse assunto). Os computadores podem executar apenas o código da máquina. O código da máquina que um computador específico pode executar é definido no processador que executará esses comandos e pode ser diferente para diferentes processadores.

Obviamente, escrever código de máquina era difícil para as pessoas fazerem (é 125 um comando add ou 126 ou talvez 27). Para contornar esse problema, o que é conhecido como linguagem assembly foi criado. Essas linguagens usavam nomes mais óbvios para os comandos (como ADD para adicionar) e, portanto, eliminavam a necessidade de lembrar os códigos de máquina exatos. As linguagens assembly ainda têm um relacionamento individual com o processador e o código da máquina em que o computador converte esses comandos.

Os idiomas de assembly devem ser compilados ou interpretados

Desde muito cedo percebeu-se que era mais fácil escrever línguas eram necessários e que o próprio computador poderia ser usado para convertê-los nas instruções de código da máquina que o computador possa realmente entender. Havia duas abordagens que poderiam ser adotadas com esta tradução e as duas alternativas foram escolhidas (um ou outro será usado dependendo do idioma que está sendo usado e de onde está sendo executado).

instagram viewer

Uma linguagem compilada é aquela em que, depois que o programa é escrito, você alimenta o código por meio de um programa chamado compilador e que produz uma versão de código de máquina do programa. Quando você deseja executar o programa, basta chamar a versão do código da máquina. Se você fizer alterações no programa, precisará recompilá-lo antes de poder testar o código alterado.

Uma linguagem interpretada é aquela em que as instruções são convertidas do que você escreveu em código de máquina enquanto o programa está sendo executado. Uma linguagem interpretada basicamente recebe uma instrução da fonte do programa e a converte em máquina código, executa o código da máquina e pega a próxima instrução da fonte para repetir o código processo.

Duas variantes na compilação e interpretação

Uma variante usa um processo de dois estágios. Com esta variante, a fonte do seu programa é compilada não diretamente no código da máquina, mas em vez disso, é convertido para uma linguagem semelhante a um assembly que ainda é independente do particular processador. Quando você deseja executar o código, ele processa esse código compilado por meio de um intérprete específico para o processador, a fim de obter o código da máquina apropriado para esse processador. Essa abordagem tem muitos dos benefícios de compilar, mantendo a independência do processador, pois o mesmo código compilado pode ser interpretado por muitos processadores diferentes. Java é uma linguagem que geralmente usa essa variante.

A outra variante é chamada de compilador Just in Time (ou JIT). Com essa abordagem, você não executa o compilador depois de escrever seu código. Em vez disso, isso acontece automaticamente quando você executa o código. Usando um compilador Just in Time, o código não é interpretado, declaração por instrução, é compilado tudo em um sempre que é chamado para ser executado e, em seguida, a versão compilada que acabou de criar é o que obtém corre. Essa abordagem faz com que pareça muito com o código que está sendo interpretado, exceto que, em vez de encontrar erros apenas quando a instrução com o parâmetro for atingido, qualquer erro detectado pelo compilador resulta em nenhum código sendo executado, em vez de todo o código até aquele momento corre. PHP é um exemplo de linguagem que geralmente usa compilação just in time.

O JavaScript é compilado ou interpretado?

Portanto, agora que sabemos o que significa código interpretado e código compilado, a próxima pergunta que precisamos responder é o que tudo isso tem a ver com JavaScript? Dependendo exatamente de onde você executa o JavaScript, o código pode ser compilado ou interpretado ou usar qualquer uma das outras duas variantes mencionadas. Na maioria das vezes você estáexecutando seu JavaScript em um navegador da web e aí o JavaScript geralmente é interpretado.

Os idiomas interpretados são geralmente mais lentos que os idiomas compilados. Há duas razões para isso. Em primeiro lugar, o código a ser interpretado precisa ser interpretado antes de poder ser executado e, em segundo lugar, isso acontecer sempre que a instrução for executada (não apenas toda vez que você executar o JavaScript, mas se estiver em uma ciclo então isso precisa ser feito sempre que ocorrer o loop). Isso significa que o código escrito em JavaScript será executado mais lentamente que o código escrito em muitos outros idiomas.

Como esse conhecimento nos ajuda onde o JavaScript é o único idioma disponível para rodar em todos os navegadores da Web? O próprio interpretador JavaScript incorporado no navegador da web não está escrito em JavaScript. Em vez disso, está escrito em outro idioma que foi compilado. O que isso significa é que você pode executar o JavaScript mais rapidamente se puder tirar proveito de qualquer comando fornecido pelo JavaScript que permita descarregar a tarefa no próprio mecanismo JavaScript.

Exemplos para obter o JavaScript mais rápido

Um exemplo disso é que alguns, mas nem todos os navegadores, implementaram um método document.getElementsByClassName () no mecanismo JavaScript, enquanto outros ainda não o fizeram. Quando precisamos dessa funcionalidade específica, podemos fazer com que o código seja executado mais rapidamente nos navegadores em que o mecanismo JavaScript o fornece usando o recurso sentindo para ver se o método já existe e criando apenas nossa própria versão desse código em JavaScript quando o mecanismo JavaScript não o fornece nos. Nos casos em que o mecanismo JavaScript fornece essa funcionalidade, ele deve ser executado mais rapidamente se o usarmos, em vez de executar nossa própria versão escrita em JavaScript. O mesmo se aplica a qualquer processamento que o mecanismo JavaScript disponibilize para ligar diretamente.

Também haverá casos em que o JavaScript fornece várias maneiras de fazer a mesma solicitação. Nesses casos, uma das maneiras de acessar as informações pode ser mais específica que a outra. Por exemplo, document.getElementsByTagName ('table') [0] .tBodies e document.getElementsByTagName ('table') [0] .getElementsByTagName ('tbody') recuperar o mesmo nodelist das tags tbody na primeira tabela da página da web, no entanto, a primeira delas é um comando específico para recuperar as tags tbody em que o segundo identifica que estamos recuperando tags tbody em um parâmetro e outros valores podem ser substituídos para recuperar outras Tag. Na maioria dos navegadores, a variante mais curta e mais específica do código será executada mais rapidamente (em alguns casos muito mais rápido) que a segunda variante e, portanto, faz sentido usar as mais curtas e específicas versão. Também facilita a leitura e a manutenção do código.

Agora, em muitos desses casos, a diferença real no tempo de processamento será muito pequena e só será quando você adiciona várias opções de código para obter uma diferença notável no tempo que o código leva para corre. É bastante raro, entretanto, alterar seu código para torná-lo mais rápido, tornará o código significativamente mais longo ou mais difícil de manter, e muitas vezes o inverso será verdadeiro. Há também o benefício adicional de que versões futuras de mecanismos JavaScript podem ser criadas para acelerar a variante mais específica, mesmo além disso, o uso da variante específica pode significar que seu código será executado mais rapidamente no futuro sem que você precise alterar nada.

instagram story viewer