Seidor
reunión de personas

05 de junio de 2024

V8, el motor de código desarrollado por Google

Javascript se ha convertido en el lenguaje de programación más importante en el mundo del desarrollo web; nos permite crear una aplicación web usando este mismo lenguaje ya no solo para desarrollar la parte frontal del sitio, sino también la parte back-end.

Es ya algo recurrente el hecho de escuchar noticias informando de nuevas librerías o frameworks dedicados a mejorar o ampliar la funcionalidad de Javascript.

Por eso, en el año 2008, coincidiendo con el lanzamiento del actual navegador más usado: Google Chrome, Google creó su propio intérprete de código Javascript y lo llamó V8.

Pero, ¿cómo funciona esto y por qué requiere un navegador de un intérprete?

Bien; cuando se accede a un sitio web desde un navegador, este requiere de la descarga de todos los archivos .js, para tener la noción de todas las instrucciones a ejecutar. Para ello, y como los navegadores únicamente entienden las instrucciones en código-máquina, requiere de un sistema intérprete que pueda “traducir” todas estas instrucciones para que puedan ser entendidas y entonces ejecutadas por parte del navegador.

Pues el responsable de interpretar las instrucciones de código Javascript en Google Chrome y emplear procesos conocidos como JIT Compiler es el V8 Engine.

V8 Engine actualmente y a raíz de su gran estabilidad se ha convertido en el motor de conversión de código Javascript desarrollado en C++ más fiable, usado en herramientas como Microsoft Edge, Chrome y NodeJS.

El motor V8 de Google convierte las instrucciones de Javascript en una lista de tokens, que posteriormente va a producir un Abstract Syntax Tree, representando simplificadamente el código fuente escrito en Javascript (en este caso), en un árbol de estructura. Posteriormente a esto, pasará por el intérprete, que es el que generará Bytecode y luego interpretará este Bytecode para poder ejecutarlo. También cuenta con la optimización de su compilador llamado TurboFan, cuya tarea principal es tomar instrucciones procesadas y retornadas por parte del intérprete para compilarlas para el destino.

Cabe decir también que a partir de Chrome 66, V8 compila el código fuente JavaScript en un hilo en segundo plano, reduciendo la cantidad de tiempo dedicado a compilar en el hilo principal entre un 5% y un 20%

De esta forma, revoluciona la manera de procesar Javascript, pudiéndolo ejecutar mucho más rápido empleando un intérprete para poder transformar el código y más tarde un compilador para poder optimizar el resultado final